软件调试的艺术

软件调试的艺术

第2章 停下来环顾程序

暂停机制(P39)

有3种暂停机制:

  • 断点:通知GDB在程序中的特定位置暂停执行。
  • 监视点:通知GDB当特定内存位置(或者涉及一个或多个位置的表达式)的值发生变化时暂停执行。
  • 捕获点:通知GDB当特定事件发生时暂停执行

恢复执行(P56)

恢复执行有3类:

  • 第一类是使用step(s)和next(n)“单步”调试程序,仅执行代码的下一行然后再次暂停。

  • 第二类是使用continue(c)组成,使用GDB无条件的恢复程序的执行,直到它遇到另一个断点或程序结束。

  • 第三类是使用finish(fin)或until(u)命令恢复。这种情况下,GDB会恢复中心,程序继续运行直到遇到某个预先确定的条件(比如:到达函数的末尾),到达另一个断点,或者程序完成。

  • next:stepping over 执行函数,不会在其中暂停,step:stepping into 在函数中的第一句处暂停.

条件断点(P66)

-设置条件断点的语法为:

break break-args if (condition)

其中:break-args是可以传递给break以指定断点位置的任何参数

断点命令列表(P70)

使用commands命令设置命令列表:

commands breakpoint-number
commands
end

具体例子:

commands 2
slient
printf "XXXX"
end
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容