当前位置:  技术问答>linux和unix

如何把gdb 的输出作进一步处理?

    来源: 互联网  发布时间:2016-04-05

    本文导语:  我想把gdb的输出作进一步处理,比如 ========================================== (gdb) info register eflags   eflags         0x282  642 (gdb) ========================================== 这个eflags 虽然打印出来了,但是查看各具体标志极为麻烦...

我想把gdb的输出作进一步处理,比如
==========================================
(gdb) info register eflags
  eflags         0x282  642
(gdb)
==========================================
这个eflags 虽然打印出来了,但是查看各具体标志极为麻烦,我想从这个标志中提取出比如说,
ZF=?  CF=?  等等更人性化一点的输出方式来.
我想是不是可以用shell 命令作进一步处理,但是类似于,  info register eflags | cut -f2 之类的命令是不被
支持的,如果用函数调用 shell("command") ,又不能处理info register eflags 的输出,

请问有什么办法, 我的最终目的就是要输出,类似于
ZF=? CF=? SF=? 等等比较人性化的输出来.

有解决方案者立即送分.

|
在你的用户目录下创建文件 .gdbinit
加入下面的几行:
define eflags
printf "     OF   DF   IF   TF ",
        (($eflags >> 0xB) & 1 ), (($eflags >> 0xA) & 1 ), 
        (($eflags >> 9) & 1 ), (($eflags >> 8) & 1 )
printf "  SF   ZF   AF   PF   CF n",
        (($eflags >> 7) & 1 ), (($eflags >> 6) & 1 ),
        (($eflags >> 4) & 1 ), (($eflags >> 2) & 1 ), ($eflags & 1)
printf "     ID   VIP  VIF  AC ",
        (($eflags >> 0x15) & 1 ), (($eflags >> 0x14) & 1 ), 
        (($eflags >> 0x13) & 1 ), (($eflags >> 0x12) & 1 )
printf "  VM   RF   NT   IOPL n",
        (($eflags >> 0x11) & 1 ), (($eflags >> 0x10) & 1 ),
        (($eflags >> 0xE) & 1 ), (($eflags >> 0xC) & 3 )
end
document eflags
Print entire eflags register
end

以后使用gdb的时候,直接运行eflags:
(gdb) eflags
     OF   DF   IF   TF   SF   ZF   AF   PF   CF 
     ID   VIP  VIF  AC   VM   RF   NT   IOPL 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问gdb怎么处理带有启动参数的程序和多进程程序?
  • 如何使用linux下gdb来调试python程序
  • 使用gcc gdb的大牛进来说说gdb的强大之处在哪。我刚学linux了,vim我确实体会到了其强大之处。而对gcc gdb,体会不到gdb这工具的强大之处。
  • 请教 make gdb-6.4 出现 make[4]: Entering directory `/tmp/gdb-6.4/gdb/doc'
  • GDB调试 GDB挂了。。。
  • gdb 如何调试带命令行参数的程序 如 gdb a.out arg1,arg2
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • gdb调试时命令行参数如何输入?比如main(int argc,char **argv)中,我要把一个filename作为argv[1]传入给gdb调试
  • linux gdb: 我在一台机器上编译的程序用GDB可以调试,把程序放到另外一台机器上调试,调试信息就没有了 这是什么原因呢?
  • 写调试器(像gdb)的一般思路是什么
  • gdb 使用问题请教
  • gdb的问题,请教,会者不难,快来拿分
  • gdb调试动态链接库
  • 在rh9上无法使用gdb是怎么回事呢
  • gdb高手请指教
  • gdb如何进行调试?
  • 请问,有人研究过gdb-insight源码吗?
  • 在linux下除了gdb外还有没其他好用的调试器?
  • gdb调试
  • Linux下gdb如何追踪进入子进程??急急7777777777777
  • 如何编译gdb
  • 怎样在windows中编译生成gdb


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3