GDB调试工具
一.能够完成的功能
1.能够启动程序,随心所欲的运行程序
2.断点调试(断点可以是条件表达式)
3.当程序挺住时,可以检查程序此时发生的事
4.可以改变程序,将一个BUG产生的影响修正从而测试其他的BUG
二.准备工作
在为调试而编译时,我们会()关掉编译器的优化选项(‘-O’),并打开调试选项(‘-g’),-Wall(所有警告)在尽量
不影响程序行为的情况下选项打开所有warning,也可以发现许多的问题,避免一些不必要的BUG。
具体做法
gcc -g -Wall program.c -o program -g 是生成可调试的可执行程序
三.命令 启动GDB/
启动 gdb + 可执行程序
退出 quit
给程序设置参数/获取设置参数
set args 10 20
show args
帮助 help
查看代码文件(默认显示main文件)
list/l
list/l 行号
list/l 函数名
查看指定文件
list/l文件名:行号
list/l文件名:函数名
设置显示的行数
show list/listsize
set list/listsize 行数 set nu如果vim不显示行数用这个命令显示行数
四.断点 GDB断点操作/
设置断点
b/break 行号/函数/文件名:行号/文件名:函数名
查看断点
i/info b/break
删除断点
d/del/delete 断点编号
设置断点无效
dis/disable 断点编号
设置断点生效
ena/enable 断点编号
设置条件断点
b/break 10 if i==5
五.运行程序 //GDB调试命令///
start(程序停在了第一行)
run(遇到断点才停)
继续运行,到下一个断点停
c/continue
向下执行一行代码(不会进入函数体)
n/next
变量操作
p/print 变量名(打印变量名)
ptype 变量名(打印变量类型)
向下单步调试(遇到函数进入函数体)
s/step
finish (跳出函数体)
自动变量操作
display num(自动打印指定变量的值)
i/info display
undisplay 编号
其他操作
set var 变量名=变量值
until (跳出循环)