ubuntu 12.04 GDB调试常用指令

来源:互联网 发布:淘宝一元秒杀神器 编辑:程序博客网 时间:2024/05/22 09:03
编译时必须加上参数-g ,例:g++ -g  -o hello  hello.c 通过Gcc编译生成可执行文件才能用Gdb进行调试。
进入gdb界面:gdb hello 提示符变成(gdb)
(1)查看文件 源码
在Gdb中键入”l”(list)就可以查看所载入的文件

(2)设置断点
只需在”b”后加入对应的行号即可(或直接输入函数名)。如下所示:(gdb)b 6  (gdb)b main代码运行到第五行之前暂停(运行到main())。

(3)查看断点情况
(Gdb) info b

(4) 删除指定断点,其断点号为”info b”中的第一栏。若缺省断点号则删除所有断点
delete [断点号]
  
(5) 停止指定断点,使用”info b”仍能查看此断点。同delete一样,省断点号则停止所有断点
disable [断点号]]
  
(6) 激活指定断点,即激活被disable停止的断点
enable [断点号]

(7)运行代码
Gdb默认从首行开始运行代码,可键入”r”(run)即可(若想从程序中指定行开始运行,可在r后面加上行号)。

(8)查看变量值
查看断点处的相关变量值。在Gdb中只需键入”p”+变量值即可,如下所示:(Gdb) p n Gdb在显示变量值时都会在对应值之前加上”$N”标记,它是当前变量值的引用标记,所以以后若想再次引用此变量就可以直接写作”$N”,而无需写冗长的变量名。

(9)单步运行
使用命令”n”(next)或”s”(step),它们之间的区别在于:若有函数调用的时候,”s”会进入该函数而”n”不会进入该函数。因此,”s”就类似于VC等工具中的”step in”,”n”类似与VC等工具中的”step over”。

(10)恢复程序运行
使用命令”c”(continue). 在Gdb中,程序的运行状态有“运行”、“暂停”和“停止”三种,其中“暂停”状态为程序遇到了断点或观察点之类的,程序暂时停止运行,而此时函数的地址、函数参数、函数内的局部变量都会被压入“栈”(Stack)中。故在这种状态下可以查看函数的变量值等各种属性。但在函数处于“停止”状态之后,“栈”就会自动撤销,它也就无法查看各种信息了。

(11) 运行shell的command命令 
   shell vi hello.c  (在需要运行的命令前加上 shell)
0 0
原创粉丝点击