在低端微控制器上进行仿真时,直接使用jtag和ide集成开发环境进行在线调试,不仅操作简单,而且界面良好,运行情况和结果非常直观。但是在linux平台,很少有类似的集成开发环境,linux上的gdb使用命令操作的方式,而且它要比集成开发环境强大多。下面是整理的常用的gdb调试命令。
编译时必须添加-g才能利用gdb进行调试,如:gcc -g test.c -o test
1. gdb -tui test打开调试程序,界面分页,上面是代码,下面是命令;
2. gdbtui的开关快捷键:ctrl x ctrl a或者ctrl x a
3. file test在运行gdb下打开某个文件
4. run/r 运行
5. continue/c 继续运行
6. step/s 如果有函数则进入函数执行
7. finish 跳出当前的函数
8. stop 停止运行
9. until xxx 可用于跳出循环
10.guit/ctrl d 退出gdb
11.print/p var 打印变量的值
12.print/p &var 打印变量地址
13.printf/p *addr 打印地址的值
14.printf/p /x var 用16进制显示数据
x十六进制/d十进制/u十六进制无符号/t二进制/c字符/f浮点
15.break/b xxx 在某行打断点
16.break/b fun 在某个函数处加断点
17.break/b 30 if n==100 //当变量n等于100的时候在30行处加断点
18.break filename:n 在某个文件的n行加断点
19.info break/b 查看断点
20.clear n 删除n行断点
21.delete n 删除n号断点
22.delete 删除所有断点
23.disable xxx 失能断点
24.enable xxx 使能断点
25.info b 查看断点
26.info source 查看当前程序
27.info stack 查看堆栈信息
28.info args 查看当前参数值
29.display args 查看当前参数值
30.bt 查看函数堆栈
31.pwd查看程序路径
32.ctrl p 前一条命令
33.ctrl n 下一条命令
34.watch xxx 设置监控点,在变量改变的时候停下来。(不可直接设置,先加断点在监测)
35.ctrl l可能layout会造成控制台花屏,使用ctrl l清屏
36.list linenum:以linenum指定的行号为中心,显示10行
37.list function:以指定的函数为中心,显示10行
38.list:重复上一次的list指令,也可以直接按回车键,重复上次指令。
39.set listsize count:设置每次显示的行数。
40.show listsize:显示已设置的显示行数。
41.list first,last:显示指定起始行到结束结束行的源文件。
42.list ,last:显示以指定的last为结束行,显示10行。
43.list first,:以first为第一行,显示10行。
44.list :以上次显示的结束行为起始行显示后10行
45.list –:以上次显示的起始行为结束行,显示前10行