gdb调试

 

 

在同一个工程构建出的Debug版和Release版可执行文件projectD和projectR,使用如下objcopy命令把Debug版中的符号表加到Release版中,实现对Release版的调试。

  1、objcopy --only-keep-debug projectD projectsymbol.dbg #生成符号表;

  2、gdb --symbol=projectsymbol.dbg -exec=projectR #运行调试;或者

             gdb --symbol=projectsymbol.dbg  projectR coredump_file #调试coredump

这样加载符号表到底有什么用呢? 目前还没有想法。

 

bt (backtrace):显示栈信息。

Release版显示的堆栈信息:

Debug版本显示的堆栈信息,比Release版多了文件名和行号:

使用Release版本即使是加载了符号表,也不会显示源文件名和行号。

 

 

set args 可指定运行时参数。(如:set args 10 20 30 40 50) 


show args 命令可以查看设置好的运行参数。  

break <function>    在进入指定函数时停住

 

可以通过info breakpoints [n]命令查看当前断点信息。此外,还有如下几个配套的常用命令:

  • delete    删除所有断点   -- 缩写 "d"

  • delete breakpoint [n]    删除某个断点  -- 缩写 "d [n]"

  • disable breakpoint [n]    禁用某个断点 -- 缩写"dis"

  • enable breakpoint [n]    使能某个断点

 

和调试步进相关的命令主要有如下几条:

  • continue    继续运行程序直到下一个断点(类似于VS里的F5)

  • next        逐过程步进,不会进入子函数(类似VS里的F10)

  • setp        逐语句步进,会进入子函数(类似VS里的F11)

  • until        运行至当前语句块结束

  • finish    运行至函数结束并跳出,并打印函数的返回值(类似VS的Shift+F11)

 

和源码查看有关的:

  • directory:不带参数的directory将源码搜索目录恢复为默认值。
  • set directories path-list:将源码目录设置为path-list,但是会补上默认目录。 (缩写 dir path-list)
  • show directories:显示源码搜索目录列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值