盒子
盒子
Posts List
  1. 调试的原则
  2. 主要调试器操作
    1. 单步调试源代码
    2. 设置断点
    3. 删除和禁用断点
    4. 检查变量
    5. 设置监视点
  3. P.S. 命令缩写

软件调试的艺术(The Art of Debugging with GDB, DDD, and Eclipse)

调试的原则

  • 调试的本质:确认原则
  • 从简单工作开始调试
  • 使用自顶向下的方法
  • 使用调试工具确定段错误的位置
  • 通过发出中断确定无限循环的位置
  • 使用二分搜索

主要调试器操作

单步调试源代码

break 设置断点

condition breakpointnumber condition 条件断点

break 30 if num_y==1 条件断点

clear bplinenumber 删除断点

info break 查询要找的断点编号

next 执行下一行

step 在函数调用时进入函数

continue 恢复执行并继续

tbreak 临时断点

设置断点

break line_number

break function

break filename:line_number

break filename:function

break +offset

break -offset

删除和禁用断点

delete breakpoint_list

delete 删除所有断点

clear 清除GDB将执行的下一个指令处的断点,这种方法适用于要删除GDB已经到达的断点的情况。

clear function, clear filename:funciton, clear line_number, clear filename:line_number 根据位置清除断点

disable breakpoint_list

enable breakpoint_list

enable once breakpoint_list 在断点下次引起GDB暂停执行后被禁用

检查变量

print 命令

设置监视点

watch z

watch (z > 29)

P.S. 命令缩写

b 表示 break

i b 表示 info break

cond 表示 condition

r 表示 run

n 表示 next

s 表示 step

c 表示 continue

bt 表示 breaktrace