版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
- 编译过程一定要加-g选项:因为在Linux系统下,默认生成的是release(不加调试信息)版本的可执行程序,如果不加-g,则不能调试。例如编译hello.c生成hello的debug版本;
gcc -g hello.c -o hello
- 1
- 在开启gdb调试不想看到那么一大堆版本信息可以加-q,例如调试hello
gdb -q hello
- 1
- 常用选项:
run/r:执行程序到结束
continue:从当前位置开始连续而非单步执行程序到结束
breaktrace(或bt):查看各级函数调用及参数
start:开始单步调试,next/n下一步
step/s:进入函数,类似于VS里的F11
finish:执行到当前函数返回,然后停下来等待命令
break/b:打断点,可以加行号或者函数
delete/d breakpoints/number:删除所有断点/删除断点编号为number的断点
print/p:打印表达式的值,通过表达式可以修改变量的值或者调用函数 (p 变量:打印变量值。)
q/ctrl+d:退出gdb
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-095d4a0b23.css" rel="stylesheet">
</div>