GDB 调试程序

1. 初始化

gdb 是对已经编译成功程序到调试, 并且为了保证可执行程序时包含调试信息, 编译时使用 -g 参数来指明

sublimetext ctrl+B 生成到可执行文件不能直接被 gdb 调试

2. 暂停程序

gdb 可以实用几种方式来暂停程序: 断点, 观察店, 捕捉点, 信号, 线。 当程序被暂停后, 可以使用 continue, next, step 来继续执行程序

continue 执行到下一个暂停点或程序结束

next 执行下一行代码但进入函数内部

step 执行下一行代码并且进入函数内部

(1)设置断点

  a. break +[源代码行号]

  b. break ... if ... condition ... 比如 break ... if i = 100 来设置循环次数

(2) 设置观察点

  a. watch +[变量][表达式] 当变量或表达式改变时即停住程序

  b. rwatch +[变量][表达式] 当变量或表达式被读时, 停住程序

  c. awatch+[变量][表达式] 当变量或表达式被读写时, 停住程序

2. 查看信息

  (1) 查看数据

    a. print variable 查看变量

BTW

1. 列文件清单

  List, 列出源文件, 按 enter 逐渐显示出下面几行

2. 执行程序

  b(break) +[][] 添加断点

  n 开始单步调试

3. 断点操作

  delete index 删除第 index 个断点

  enable index 使第 index 个断点 enable

  disable index 使第 index 个断点 disable

4. 函数调用

  call name 调用并执行一个函数

  call function(1,3)

  call printf("abcd")

原文地址:https://www.cnblogs.com/xinsheng/p/3484235.html