gdb调试方法
# 编译一个测试程序,-g表示可以调试,生成调试信息,命令如下:
gcc -g test.c -o test
# 启动gdb,命令如下:
gdb test
gdb -q test //表示不打印gdb版本信息,界面较为干净;
# 查看源程序代码,默认显示10行,按回车键继续看余下的。
list(简写 l)
# 运行程序,运行程序直到遇到结束或者遇到断点等待下一个命令;
run(简写 r)
# 设置断点,格式 b 行号,在某行设置断点;
break(简写 b) 行号
# 在函数func()的入口处设置断点,如:break cb_button
break(简写 b) func
# 显示断点信息
info breakpoints
# 调试执行
# 单步执行程序,但是遇到函数会进入函数;
step(简写 s)
# 继续执行程序,直到下一个断点或者结束;
continue(简写 c)
# 单步执行程序,但是遇到函数时会直接跳过函数,不进入函数;
next(简写 n)
# 查看变量
print 变量
# 当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体
until
# 运行至某行,不仅仅用来跳出循环
until 行号
# 运行程序,直到当前函数完成返回,并打印函数返回时的堆栈地址和返回值及参数值等信息。
finish
# 调用程序中可见的函数,并传递“参数”,如:call gdb_test(55)
call 函数(参数)
# 将以整数22作为参数调用 gdb_test() 函数
print gdb_test(22)
# 退出gdb
quit
# 删除第n个断点
delete 断点号n
# 暂停第n个断点
disable 断点号n
# 开启第n个断点
enable 断点号n
# 清除第n行的断点
clear 行号n
# 显示当前程序的断点设置情况
info b (info breakpoints)
# 清除所有断点
delete breakpoints