break <linenum>
在指定行号停住。
break +offset
break -offset
在当前行号的前面或后面的offset行停住。offiset为自然数。
break filename:linenum
在源文件filename的linenum行处停住。
break filename:function
在源文件filename的function函数的入口处停住。
break *address
在程序运行的内存地址处停住。
break
break命令没有参数时,表示在下一条指令处停住。
break ... if <condition>
...可以是上述的参数,condition表示条件,在条件成立时停住。比如在循环境体中,可以设置break if i=100,表示当i为100时停住程序。
查看断点时,可使用info命令,如下所示:(注:n表示断点号)
info breakpoints [n]
info break [n]
条件断点
- 在上面添加断点后输入: if 表达式,只有在表达式为true的时候断点才会生效
查看:
- 查看断点:info b回车,或者info break
- 查看堆栈:bt
断点管理
查看断点:info b回车后,会打印断点的编号及所在位置、是否使能等;如果要删除某个断点,可以:a)d 编号,b)delete 编号;如果要使某个断点disable/enable,可以:disable/enable 编号;
打印变量
- p 变量名,print的缩写
退出程序:
- q:quit的缩写
调试正在运行的进程
已知进程号,通过gdb调试并查看问题:gdb -p 进程号
调试中使用已编写好的断点文件
- 在gdb调试过程中,可以通过 source xx文件的形式,这样不用每次都手动输入断点信息
启动gdb
启动gdb有以下三种方式:
1、gdb <program>
program也就是你的执行文件,一般在当然目录下。
2、gdb <program> core
用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。
3、gdb <program> <PID>
如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试它。program应该在PATH环境变量中搜索得到。
参考:
https://blog.csdn.net/haoel/article/details/2880
https://baike.baidu.com/item/gdb/10869514
gdb调试
标签:表达式 图形 ike disable 信息 mil href ddr 进程