如何在gdb中打印长字符串的完整值?
我想在GDB中打印C字符串的全长。 默认情况下它是缩写,我如何强制GDB打印整个字符串?
set print elements 0
从GDB手册:
set print elements
number-of-elements
设置数组GDB将打印多少个元素的限制。 如果GDB正在打印大型数组,它会在打印了由set print elements
命令set print elements
的元素数量后停止打印。 这个限制也适用于字符串的显示。 当GDB启动时,此限制设置为200.将元素数设置为零意味着打印是无限的。 只要你的程序处于健全状态,你也可以call (void)puts(your_string)
将它打印到标准输出。 实际上,同样的原则适用于调试器可用的所有功能。
还有第三个选项:x命令,它允许您为特定命令设置不同的限制,而不是更改全局设置。 要打印字符串的前300个字符,可以使用x/300s your_string
。 输出可能有点难以阅读。 例如,打印SQL查询会导致:
(gdb) x/300sb stmt.c_str() 0x9cd948: "SELECT article.r"... 0x9cd958: "owid FROM articl"... ..链接地址: http://www.djcxy.com/p/86021.html
上一篇: How do I print the full value of a long string in gdb?
下一篇: How to get a stack trace for C++ using gcc with line number information?