从子进程分叉后gdb分离-禁用?
在gdb中获取此消息。我知道这不是一个错误或什么。我也做了分页,所以这不是一个问题从子进程分叉后gdb分离-禁用?,gdb,fork,Gdb,Fork,在gdb中获取此消息。我知道这不是一个错误或什么。我也做了分页,所以这不是一个问题 有什么方法可以抑制这个消息吗?我很好奇这个问题没有得到回答 我获得了,它说(在PDF第九版第33页,gdb版本7.0.50.20091228中): 在gdb的控制下启动或退出时通知下级 设置打印不良事件: set print inferior-events set print inferior-events on set print inferior-events off 设置打印不良事件命令允许您启用或禁用
有什么方法可以抑制这个消息吗?我很好奇这个问题没有得到回答 我获得了,它说(在PDF第九版第33页,gdb版本7.0.50.20091228中): 在gdb的控制下启动或退出时通知下级
设置打印不良事件
:
set print inferior-events
set print inferior-events on
set print inferior-events off
设置打印不良事件
命令允许您启用或禁用
当gdb发现新的下级已经开始或
下级已经退出或被分离。默认情况下,这些消息将
不能打印
show print inferior-events
显示当gdb检测到下级有错误时是否打印消息
已启动、退出或已分离
我唯一担心的是,这意味着默认情况下您不应该看到这些消息。只需确保您的设置与默认设置匹配,而不要覆盖它们
第4.11节“调试分叉”(pp38-40)看起来也与您相关。我尝试了
关闭打印不良事件,但没有禁用消息。实际上,打印劣质事件
在我试图关闭它之前就已经关闭了
我查看了gdb
源代码,发现打印劣质事件
只控制消息的打印“[新劣质%d]”
,“[劣质%d退出]”
,和“[劣质%d分离]”
消息在fork之后从子进程分离
由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|u verbose | debug|u linux_nat)
。所以你永远不能关闭它,除非你从源代码中删除补丁并重新编译。因为我没有得到答案,所以我的问题似乎放错了。让我换一种说法。。问:gdb有分页关闭选项,通过该选项,您可以使用任何警告保持滚动。这在大多数情况下都有效。我能够抑制一些中断和信号。但是,当您使用具有多个线程、fork、exec等的大型二进制文件时,它会不断向您提供各种信息/警告。有时候这很烦人。有没有办法压制这种警告?这个答案是正确的,但并不重要。请看下面我的答案。那个补丁什么时候贴在Fedora上的?而且,全世界都没有运行Fedora——最初的问题并没有指定Linux,更不用说Fedora了。您已经做了一些有趣的研究,但是Fedora特定的补丁不会影响GDB用户的通用性。你的回答可能与某些人有关;但是,你笼统地断言,最初的答案(有用了几年)是不相关的。乔纳森,请注意,我只是在最后为Fedora用户添加了信息(因为我碰巧在Fedora上遇到了同样的问题),我前面提到的所有“然而”都适用于所有系统,因为它直接来自原始的gdb-7.3
。特别是,在任何系统上,关闭打印劣质事件
都不会关闭消息从子进程分离fork之后
。我不能确定补丁是何时应用的,但文件gdb-6.6-bz235197-fork-detach-info.patch
位于gdb-7.2-52.fc14.src.rpm
,补丁文件日期为2011-11-09。