版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40313634/article/details/88619906
实验楼值GDB常用命令实战课程学习记录
1. 安装工具:
代码语言:javascript复制sudo apt-get install gdb
2. 编译可调式程序:
代码语言:javascript复制gcc bugging.c -o bugging -g -m32
-o: 生成的可执行文件的名字。默认是a.out。
-g: 生成的程序允许gdb 调试。
-m32:生成32位的程序。默认,程序位数和OS位数相同。
编译32位程序时报错:fatal error: sys/cdefs.h: 没有那个文件或目录。
解决:
安装32库:sudo apt-get install libc6-dev-i386
如果安装库报错,则更新OS软件:sudo apt-get updata
然后重新安装32库就可以了。
3. 调试:
代码语言:javascript复制开始调试:gdb bugging
结束调试:quit
断点在循环中时:
enable once Num // 断点hit 一次后,失效。
enable delete Num // 断点执行一次后删除。
打印当前函数的所有局部变量的值:
info locals
命令 | 简写 | 说明 |
---|---|---|
list | l | 查看附近源码 |
next | n | 执行下一步 |
step | s | 一次执行一行,遇到函数会进入 |
break | b | 设置断点 |
info breakpoints | 显示断点信息 | |
delete | d | 删除断点 |
p | 打印值 | |
until | u | 执行到指定行 |
continue | c | 继续运行 |
run | r | 执行程序,启动调试 |
finish | f | 运行到函数结束 |
backtrace、where、info stack | 打印堆栈信息 |