Answers:
set print elements 0
set print elements
number-of-elements
设置打印GDB数组中的元素数量的限制。如果GDB正在打印大型数组,则在打印set print elements
命令设置的元素数量后,它将停止打印。此限制也适用于字符串的显示。GDB启动时,此限制设置为200。将元素数设置为零表示打印不受限制。
只要您的程序处于正常状态,您还可以call (void)puts(your_string)
将其打印到stdout。实际上,相同的原理适用于调试器可用的所有功能。
还有第三个选项:x命令,它允许您为特定命令设置不同的限制,而不用更改全局设置。要打印字符串的前300个字符,可以使用x/300s your_string
。输出可能会更难读取。例如,打印SQL查询将导致:
(gdb)x / 300sb stmt.c_str() 0x9cd948:“选择article.r” ... 0x9cd958:“ owic FROM articl” ... ..
使用set elements ...
并不总是最好的方法。如果有一个独特的地方,这将是有用的set string-elements ...
。
因此,我在.gdbinit中使用以下功能:
define pstr
ptype $arg0._M_dataplus._M_p
printf "[%d] = %s\n", $arg0._M_string_length, $arg0._M_dataplus._M_p
end
define pcstr
ptype $arg0
printf "[%d] = %s\n", strlen($arg0), $arg0
end
注意事项: