一、生成带有调试信息的程序

gcc main.c -o app -g

二、启动调试

  1. 启动调试:gdb app
  2. 设置参数: set args
    set args 123 abc 456 ddd
  3. 查看代码: listl
    • 查看代码显示行数:show listsize
    • 设置代码显示行数:set listsize 20
    • 查看当前文件:
      • l
      • l 行号
      • l 函数名
    • 查看非当前文件:
      • l 文件名:行号
      • l 文件名:函数名

三、断点相关

  1. 设置断点:
    • break 行号
    • b 行号
    • b 函数名
    • b 文件名:行号
    • b 文件名:函数名
  2. 查看断点:info breaki b
  3. 删除断点:
    • del 断点Num
    • d Num
    • d Num1 Num2
    • d Num1-Num10
  4. 设置断点无效:dis Num
  5. 断点生效:ena Num
  6. 设置条件断点:b 行号 if i == 10

四、调试相关

  1. 启动运行:
    • start - s
    • run - r
  2. 退出 gdb 调试:quit - q
  3. 打印变量的值:p 变量名
  4. 打印变量的类型:ptype 变量名
  5. 向下单步调试:
    • next - n
    • step - s
  6. 跳出函数体:finish
  7. 从循环中跳出(循环体中不能有断点):until
  8. 设置变量的值:set var 变量名 = value
  9. 继续运行到下一个断点:continue - c
  10. 监视变量:display 变量名
  11. 查看所有的监视变量的信息:info(i) display
  12. 取消变量监视:undisplay Num