从dbx迁移到gdb:
我想永久禁止gdb在我的终端上打印出的信息,同时将其全部附加到一个正在运行的进程上。有人知道怎么做吗?谢谢你的帮助。
示例(64位CentOS 6.6)会话:
gdb -p 12345
Attaching to process 12345
Reading symbols from /some/path/to/my/ELF executable...done.
Reading symbols from /some/other/path/to/my/library.so...done.
Loaded symbols for /some/other/path/to/my/library.so
[New LWP 12345]
[New LWP 12345]
[New LWP 12345]
[New LWP 12345]
[Thread debugging using libthread_db enabled]
0x000000338a6aca3d in nanosleep () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install ...
实际上,上面的“阅读”和“加载”条目有多个屏幕,为了保持理智,我手动取消了这些条目。还有4行长达100个字符的关于“缺少单独的调试信息”的抱怨,我也在这篇文章中手动取消了这些抱怨。
我什么都不想看到。我想要的就是:
gbd -p 12345
in nanosleep () from /lib64/libc.so.6
这有点没用--当前的文件名和函数名加上行号和线程id在哪里?但我愿意忽略这一点。现在更感兴趣的是抑制输出(而不是引出输出)。
这可以通过gdb轻松实现吗?.gdbinit中的条目或类似的东西?再次感谢。
发布于 2018-06-10 06:45:59
您可以使用命令set build-id-verbose 0
抑制“缺少单独的debuginfos”的抱怨(此设置似乎没有很好的文档记录)。
如果在使用gdb启动程序时出现这些警告,那么将该行包含在.gdbinit
文件中可能很有用。
发布于 2015-04-29 10:53:59
据我所知,没有办法禁用它们。
如果您使用set print inferior-events on
,则会打印一些额外的消息。因此,请确保它处于关闭状态。但是,这可能是为您准备的,因为这是默认设置。
您可以使用define
编写自己的包装器并将输出重定向到/dev/null
,从而使某些特定的命令安静下来。
我认为给予用户对输出的更多控制权将是gdb的一个合理的特性要求。
https://stackoverflow.com/questions/29929475
复制相似问题