- 调试与发布版本的区别
调试版本(debug)和发布版本(release)是软件开发中常见的两种编译方式。调试版本包含调试信息,帮助开发者查找和修复代码中的错误。发布版本则优化性能,去除调试信息,适用于最终用户。

- gcc 的默认行为
gcc 的默认行为是生成优化级别为 -O0 的调试版本二进制文件,包含调试符号,方便开发者使用调试器进行调试。

- gdb 的基础操作
3.1 启动和退出
启动 gdb 使用 gdb 程序名 命令,退出 gdb 使用 quit 或 q 命令。

3.2 显示代码
使用 list 或 l 命令加行号,可以显示指定行号的代码。

3.3 开始运行代码和设置断点
使用 run 或 r 命令开始运行代码,使用 break 或 b 加行号设置断点。

3.4 设置函数断点和文件行号断点
使用 break 或 b 加函数名设置函数断点,使用 break 或 b 加文件名和行号设置文件行号断点。

3.5 查看断点信息
使用 info breakpoints 或 info b 命令查看已设置的断点信息。

3.6 删除断点
使用 delete 或 d 加断点编号删除指定断点。

3.7 禁用和启用断点
使用 disable 加断点编号禁用断点,使用 enable 加断点编号启用断点。

3.8 逐过程和逐语句调试
使用 next 或 n 逐过程调试,使用 step 或 s 逐语句调试。


3.9 显示和取消显示变量
使用 display 加变量名或地址持续显示变量,使用 undisplay 加变量名或地址取消持续显示。

3.10 跳转到下一个断点
使用 continue 或 c 命令从当前断点跳转到下一个断点。

3.11 运行到函数结束
使用 finish 命令运行当前函数到结束。

3.12 跳转到指定行
使用 until 或 u 加行号命令跳转到指定行。

3.13 修改变量值
使用 set var 加变量名和值命令在不改变代码的情况下修改变量值。

3.14 查看调用堆栈
使用 backtrace 或 bt 命令查看当前的调用堆栈。







