ubuntu 12.04 GDB调试常用指令
2016-12-07 17:30
405 查看
编译时必须加上参数-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)
进入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)
相关文章推荐
- 关于Drawable设置到控件中不显示的问题
- Fragment懒加载
- python 2.7 : 面向对象编程
- noip2016 Day2 T2:蚯蚓 (归并)
- Redis 未授权访问缺陷可轻易导致系统被黑【SSV-89715】
- libpcap使用
- org.apache.coyote.AbstractProtocol pauseTomcat进程意外退出的有关问题分析
- poj_2942 Knights of the Round Table(判断二分图+双连通分量)
- CSharpGL(22)实现顺序无关的半透明渲染(Order-Independent-Transparency)
- JavaScript 原型与原型链
- rabbitMQ Connection timed out
- mySQL数据库Sql语句执行效率检查--Explain命令
- Eclipse和AndroidStudio装机看这里
- Android 插件程序
- tomcat发布,知道服务器的path路径
- ArcGIS与插值(一): 统计与地统计
- C#窗体程序开机启动的问题
- 远程DNS缓存攻击__网络攻防实验三
- Java多线程的一个案例-生产者消费者问题
- TCP,UDP,HTTP,HTTPS协议的区别理解