禁用GDB中的漂亮打印

5

我知道在gdb中我们可以启用漂亮的打印功能,使用set print pretty。但是有没有相应的取消功能呢?我有时候希望能够切换它。我在Stackoverflow上找不到任何文档或答案。


2
我在Google中输入了“gdb set print pretty”,点击了顶部链接并向下滚动以找到此处的“set print pretty off”:https://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_57.html - Lasse V. Karlsen
1
"set print pretty" 是 "set print pretty on" 的别名。这样更容易看出如何取消后者! - lmat - Reinstate Monica
@LasseVågsætherKarlsen StackOverflow的霸主们希望这个页面能够排在谷歌搜索结果的顶部;-) - lmat - Reinstate Monica
@LasseV.Karlsen 我们应该开发一个工具来浏览StackOverflow并删除所有在Google中可以找到的内容。显然如此。 - doug65536
@LasseV.Karlsen 我们应该制作一个工具,可以浏览StackOverflow并删除所有你在Google上可能找到的内容。显然如此。 - undefined
2个回答

10

对于较新版本的gdb(目前使用的是gdb 9.1),这种方法已不再适用。我们需要使用以下命令:

> disable pretty-printer

请参见gdb文档


啊,真正的答案 (: - jwd
原始的、被选中的答案仍然有效,它们只是做了不同的事情。set print pretty off 控制在打印时是否缩进数据结构。disable pretty-printer 禁用了尝试解释已知数据结构并打印简化版本的 Python 代码。后者会在漂亮打印程序和标准库版本不同步时出现问题,这就是为什么我通常需要禁用它的原因。 - pavon

6

使用

set print pretty off

根据文档

set print pretty on
Cause GDB to print structures in an indented format with one member per line, like this:

$1 = {  
  next = 0x0,  
  flags = {  
    sweet = 1,  
    sour = 1  
  },  
  meat = 0x54 "Pork"  
}  

set print pretty off
Cause GDB to print structures in a compact format, like this:

$1 = {next = 0x0, flags = {sweet = 1, sour = 1}, \  
meat = 0x54 "Pork"}  

This is the default format.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接