将GDB中的输出定向到文件

有时候输出信息太长,屏放不下,下面介绍两种将gdb的输出信息存到文件的方法。


方法一:适合临时向文件输出些信息的情况。

比如要用info functions输出所有函数,结果往往有一大坨,所以可以将之输出到文件。

(gdb) set logging file <file name>

(gdb) set logging on

(gdb) info functions

(gdb) set logging off


http://hellogcc.blogbus.com/logs/69799908.html


方法二:适合整个gdb会话期间都重定向输出的情况。


gdb |tee newfile 

----------------------------------------------------------------------------------

反汇编函数

(gdb) p 'operator==(uint128 const&,uint128 const&)'
$1 = {bool (const uint128 &, const uint128 &)} 0x401040 <operator==(uint128 const&, uint128 const&)>
(gdb) disassemble $1
Dump of assembler code for function _ZeqRK7uint128S1_:
0x00401040 <_ZeqRK7uint128S1_+0>:       push   %ebp
... (elided)
0x00401066 <_ZeqRK7uint128S1_+38>:      ret    
End of assembler dump.
(gdb)

直接反汇编,反汇编不了,则用下面的方法

(gdb) info func PerformerHomeManager::updateChannelFace
All functions matching regular expression "PerformerHomeManager::updateChannelFace":
File PerformerHomeManager.cpp:
void PerformerHomeManager::updateChannelFace();
void PerformerHomeManager::updateChannelFace(unsigned long, char const*);

(gdb) disassemble PerformerHomeManager::updateChannelFace()
non-unique member `updateChannelFace' requires type instantiation

(gdb) p 'PerformerHomeManager::updateChannelFace()'
$3 = {void (PerformerHomeManager * const)} 0x555ef0 <PerformerHomeManager::updateChannelFace()>
(gdb) disassemble $3
Dump of assembler code for function _ZN20PerformerHomeManager17updateChannelFaceEv:

---------------------------------------------------------------------------

显示相关符号信息

show case-sensitive
    此命令显示当前符号查找的大小写相关性的设置。
set case-sensitive on
set case-sensitive off
set case-sensitive auto
on参数指定大小写相关匹配,off参数指定大小写无关匹配。如果指定了auto,大小写相关将由此源代码语
    言缺省的设置决定。除了Fortran,对于大部分语言缺省的都是大小写相关的,Fortran是大小写无关的匹配。
info address symbol
    显示符号symbol数据在何处存储。对于寄存器变量,是说此变量在哪个寄存器里存储。对于非寄存器的本地变量,此命令打印此变
    量对于堆栈帧的偏移。
info symbol addr
    打印存储于地址addr上的符号名。如果在此地址上没有存储符号,GDB打印最近的符号和偏移量。
whatis [arg]
    打印arg的数据类型,arg可以是表达式或数据类型。如果不带参数,打印$的数据类型,值历史里最近的值。
info types regexp
    打印所有名字匹配正则表达式regexp(如果没有参数的话,打印程序里所有的类型)的的类型的简短介绍。
info sources
    打印程序中所有有调试信息的源文件名,用两个列表打印:一个是其符号已经读过的,一个是在需要是将被度
    的。
info functions regexp
    打印所有名字包含匹配正则表达式regexp的函数的名字和数据类型。
info variables regexp
    打印所有名字包含匹配正则表达式regexp的变量的名字和数据类型(除了本地变量)。
info classes regexp
    打印程序里所有Objective-C的类,或者(带参数regexp)所有匹配正则表达式regexp的类。
info selectors regexp
    显示程序里所有Objective-C选择器,或者(有正则表达式参数的话)所有匹配某个正则表达式的选择器。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值