GDB,是The GNU Project Debugger的缩写,是linux下的代码调试工具。支持断点,单步执行量,观察变量,查看寄存器,查看堆栈等功能。主要调试c/c++。
1.编译bugtest.c程序,生成可执行文件:
gcc bugging.c -o bugging -g m32
其中 -o为指定输出文件名, -m32编译为32位
2.输入 gdb bugging进入gdb调试bugging程序:
gdb bugging
(gdb) run
(gdb) quit
3.其他常用命令:
list 查看源码
backtrace 打印函数栈信息
next 执行下一行
step 一次执行一行,遇到函数进入
finish 运行到函数结束
continue 继续运行
break 设置断点
info breakpoints 显示断点信息
delete 删除断点
print 打印表达式的值
until 执行到指定行
info 显示信息
(gdb ) !shell command 执行外部命令
list 行号,显示某行代码
list 函数名,显示某一个函数附件的代码
list 文件名:行号 某一文件那行
list 文件名:函数名 某一文件函数
break 行号 某行断点
break 函数
info breakpoints 显示当前断点信息
Num 断点编号,可通过delete/enable/disable控制断点命令参数
Type代表断点类型,一般为breakpoint
Disp 断点命中后,是保留,删除,还是关闭
Enb代表断点是enable还是disable
Address断点处于虚拟内存的地址
What代表在源文件中的信息
info proc mappings可以查看待调试进程的内存分布情况
backtrack 查看函数调用栈的情况 backtrace full ,where full ,info stack full
简单总结了一下,还有一些命令,慢慢熟悉吧!
原文:https://www.cnblogs.com/qianqiu2/p/12524174.html