gdb - 调试器

540 字
3 分钟
gdb - 调试器

1. Debug vs Release 模式#

Release 模式(默认)

  • gcc/g++ 默认
  • 体积小、运行快
  • 无调试信息

Debug 模式

  • 包含调试信息
  • 便于 gdb 调试

- 程序的发布⽅式有两种, debug 模式和 release 模式,Linux gcc/g++ 出来的⼆进制程序,默认是 release 模式。 - 要使⽤gdb调试,必须在源代码⽣成⼆进制程序的时候, 加上 -g 选项,如果没有添加,程序⽆法被编译

Terminal window
$ gcc mycmd.c -o mycmd -g

2. 常见使用#

•开始: gdb binFile •退出: ctrl + d 或 quit 调试命令

命令作用样例
list / l显示源代码,从上次位置开始,每次列出 10 行list
list / l 行号从指定行号开始显示源代码list 10
list / l 函数名列出指定函数的源代码list main
list / l 文件名<行号>列出指定文件指定行号的源代码list mycmd.c<1>
r / run从程序开始连续执行run
n / next单步执行,不进入函数内部(逐过程)next / F10
s / step单步执行,进入函数内部(逐语句)step / F11
break / b 行号在指定行号设置断点break 10
break 文件名<行号>在指定文件的指定行号设置断点break test.c<10>
break / b 函数名在函数入口设置断点break main
info break查看当前所有断点信息info break
finish执行到当前函数返回,然后停止finish
print / p 表达式打印表达式的值print start+end
p 变量打印指定变量的值p x
set var 变量=值修改变量的值set var i=10
continue / c从当前位置开始连续执行程序continue
delete breakpoints删除所有断点delete breakpoints
delete breakpoints n删除序号为 n 的断点delete breakpoints 1
disable breakpoints禁用所有断点disable breakpoints
enable breakpoints启用所有断点enable breakpoints
info breakpoints查看当前设置的断点列表info breakpoints
display 变量名每次程序停止时跟踪显示变量值display x
undisplay 编号取消对指定编号变量的跟踪显示undisplay 1
until 行号执行到指定行号until 20
backtrace / bt查看当前执行栈的函数调用关系及参数backtrace
info locals查看当前栈帧的局部变量值info locals

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Profile Image of the Author
HandlerOne
おかえり
公告
本站已整理 138 篇技术笔记,并按 8 条主线排成学习路线(141 站);站内搜索与桌宠对话均已上线。
分类
标签
最新动态
站点统计
文章
138
分类
12
标签
42
总字数
597,044
站点信息
构建平台
腾讯云 · Nginx
博客版本
v6.16.8
文章目录