打印
[嵌入式linux]

GDB常用命令集合

[复制链接]
1196|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhongguoluren|  楼主 | 2012-10-19 18:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhongguoluren 于 2012-10-19 19:18 编辑

经过一番的折腾,中国路人终于把手上的项目搞定。细细品味,发现Linux下用core dump调试真真事半功倍,之前让人纠结的GDB调试也掌握个大概。普通调试用到的GDB命令整理发布。涉及到GDB调试的可以参阅一下。


启动GDB的方式
  • 直接输入gdb
  • gdb 程序名
  • gdb 程序名 core文件
GDB启动示例
  • gdb
  • gdb ./test
  • gdb ./test core
GDB命令
  • b [linenum/func]      -以行号/函数名为标识下断点
  • b [filename] : [linenum]     – 在某文件某行下断点
  • l      -显示源代码
  • l [filename] : [linenum/func]      -列出某文件某行的附近代码/函数
  • bt      -打印堆栈
  • c        -类似使用VS调试时的F5键
  • n        -单步调试
  • info break  -显示断点信息
  • delete [num]  -删除断点,num为info break断点信息中的断点编号
  • disable [num] -暂时屏蔽断点,num同上
  • enable [num]  -恢复断点,num同上
  • display [variant]  -当触发断点时,显示变量variant的值
  • whatis [variant]   -显示变量的类型,可用ptype命令代替
  • finish           -跳出函数执行体,相当于VS的SHIFT+F11
  • u                  -跳出循环体
  • step             -相当于VS的F11键
  • p [variant]    -打印变量的值
  • info locals    -显示当前所有局部变量的值
  • layout src   -显示源代码窗口,调试时会有更新问题,可用CTRL+l更新
  • b [linenum/func] if [condition]  -可以在某条件成立的时候,在某处下断点
  • watch [variant]  -类似VS的监视变量,当触发断点时,会打印variant的值
  • file [程序名]       -当以gdb命令直接进入调试的时候,可以使用该命令加载所要调试的程序
调试COREDUMP文件
  • 当程序由于某种原因崩溃后会生成core dump文件,里面包含程序崩溃时的堆栈信息和其他信息
  • ulimit –c unlimited
    要程序崩溃后自动生成core dump文件,需要执行ulimit -c命令设置core dump文件的大小,一般会在用户配置文件添加此命令,最后一个参数为设置core dump文件大小,这里设为不限制大小
  • 为了能掌握更多调试信息,我们要添加编译选项-g, 并把优化选项等级设为最低(-O0, 默认为-O2)
调试core dump示例
  • gdb ./test core
  • where  -显示引起程序崩溃的位置
  • ba  -打印堆栈信息
引自http://www.sidongxiao.com/2012/10/19/gdb-commonly-commands/

相关帖子

沙发
阿南| | 2012-10-20 12:39 | 只看该作者
不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:Linux+ARM www.sidongxiao.com

0

主题

51

帖子

0

粉丝