gdb从子进程fork后分离 - 禁用?
我很好奇,想看看这个问题是没有答案......
我获得的GDB manual,和它说(在部分 - PDF“第九版,广发行版本7.0.50.20091228”的P33):
set print inferior-events
set print inferior-events on
set print inferior-events off
的set print inferior-events
C:
当下级都在gdb的控制使用
set print inferior-events
启动或退出时收到通知ommand允许您在gdb发出新的下级已启动或 下级已退出或已被分离的情况下启用或禁用消息打印 。默认情况下,不会打印这些消息 。show print inferior-events
是否显示GDB时检测到下级已 启动,退出或已被分离的消息将被打印出来。
我唯一关心的就是它意味着你不应该在默认情况下看到这些消息。只要确保您的设置符合默认设置并且不要覆盖它们。
第4.11节“调试叉”(第38-40页)也与您有关。
这个答案是真实的,但无关紧要。请参阅下面的答案。 – musiphil 2012-02-08 22:45:01
我试过set print inferior-events off
,但它没有禁用该消息。实际上,在我试图关闭它之前,print inferior-events
已经关闭。
我通过gdb
源代码搜索,发现print inferior-events
控制消息"[New inferior %d]"
,"[Inferior %d exited]"
的印刷,并仅"[Inferior %d detached]"
。
消息Detaching after fork from child process
由verbose
和debug lin-lwp
选项控制。然而,在Fedora系统消息总是打印,因为它们具有补丁(即gdb-6.6-bz235197-fork-detach-info.patch
),轮流
if (info_verbose || debug_linux_nat)
成
if (1 /* Fedora Bug 235197 */ || info_verbose || debug_linux_nat)
。所以你永远不能关闭它,除非你从源代码中删除补丁并重新编译它。
该补丁何时应用于Fedora?而且,全世界都没有运行Fedora - 原来的问题没有指定Linux,更不用说Fedora了。你已经做了一些有趣的研究,但是Fedora特定的补丁不会影响GDB用户的普遍性。你的答案可能与某些人有关;但是你的一揽子断言是,原来的答案,这是有用的几年,是无关紧要的,似乎有点OTT。 – 2012-02-08 22:52:42
Jonathan,请注意,我只是在最后添加了Fedora用户的信息(因为我碰巧在Fedora上遇到了同样的问题),而我之前提到的所有“系统”都适用于所有系统,因为它直接来自原始gdb-7.3的来源。特别是在任何系统上,**'set print inferior-events off'不会关闭'fork from child process'之后的脱离。** 我不能确定何时应用修补程序,但文件'gdb-6.6-bz235197-fork-detach-info.patch'在'gdb-7.2-52.fc14.src.rpm'中,补丁文件的日期为2011-11-09。 – musiphil 2012-02-09 03:27:33
由于我没有得到答案,似乎我的问题是错误的。让我改述一下.. 问:gdb有分页选项,通过这个选项你可以不停地滚动任何你有的警告。这在大部分时间都适用。我能够抑制一些中断和信号。 但是 当你使用多线程,fork,exec等大型二进制文件时,它会一直给你提供各种信息/警告。这有点令人烦恼。 有什么办法可以压制这个警告吗? – Jack 2009-11-21 10:11:16