在步进指令之间时,抑制gdb的默认输出

时间:2009-09-30 14:50:31

标签: debugging gdb

当我逐步完成与gdb的调试会话时,它会为我打印出一些信息。我怎么阻止这个。这是一个例子:

Breakpoint 1, 0x100000d4 in ?? ()
(gdb) si
0x100000d8 in ?? ()
(gdb) si
0x100000dc in ?? ()
(gdb) 

在这里,我想删除说0x100000d8 in ?? ()的行。我在文档中找不到有关抑制此输出的任何内容。有什么想法吗?

由于 添

3 个答案:

答案 0 :(得分:1)

您可以使用0x100000d8禁止打印set print address off。看source(搜索 static void print_frame (...) ),我不认为可以抑制其余部分。

答案 1 :(得分:1)

有点神秘的解决方案是定义一个打开“日志重定向”的函数,然后逐步执行指令,最后关闭日志记录。例如:

define stepix
   set logging redirect on
   set logging file /tmp/whatever
   set logging on
   si
   set logging off
end

但该解决方案将抑制所有输出,而不仅仅是0x100000d8 in ?? ()。可能不适合您的需要/品味。我不认为压制这种输出是可能的。

答案 2 :(得分:0)

现在是2016年,对于那些想要有选择地禁用命令输出的人,我有一个丑陋的解决方案。我不知道你的gdb应该有多近。

而不是

(gdb) stepi

试试这个

(gdb) python gdb.execute("stepi", to_string=True)

感觉就像这样一个基本功能,如果你有更好的方法请分享,特别是不依赖python的方式。我真的希望在循环中运行stepi时避免(可能)性能损失。