调试gcc时老是不能显示全字符串
(gdb) p cp->spec
$35 = 0x8057080 "%{E|M|MM:%(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options)} %{!E:%{!M:%{!MM:\t %{save-temps:%(trad_capable_cpp) -lang-c %{ansi:-std=c89}\t\t%(cpp_options) %b.i \n\t\t cc1 -fpreprocessed %"...
上网找无果,猜猜gdb中有一个值来控制显示多少吧?
直接看gdb源码,发现果然有.
可以使用set print elements命令来控制显示字符串最多字符数,默认是200.
(gdb) set print elements 0
(gdb) p cp->spec
$36 = 0x8057080 "%{E|M|MM:%(trad_capable_cpp) -lang-c %{ansi:-std=c89} %(cpp_options)} %{!E:%{!M:%{!MM:\t %{save-temps:%(trad_capable_cpp) -lang-c %{ansi:-std=c89}\t\t%(cpp_options) %b.i \n\t\t cc1 -fpreprocessed %b.i %(cc1_options)}\t %{!save-temps:\t %{traditional|ftraditional|traditional-cpp:\t\ttradcpp0 -lang-c %{ansi:-std=c89} %(cpp_options) %{!pipe:%g.i} |\n\t\t cc1 -fpreprocessed %{!pipe:%g.i} %(cc1_options)}\t %{!traditional:%{!ftraditional:%{!traditional-cpp:\t\tcc1 -lang-c %{ansi:-std=c89} %(cpp_options) %(cc1_options)}}}} %{!fsyntax-only:%(invoke_as)}}}}"
本文介绍了解决GCC调试过程中字符串无法完全显示的问题。通过设置gdb中的print elements参数为0,可以取消字符串显示的最大字符数限制,从而完整查看字符串内容。
566

被折叠的 条评论
为什么被折叠?



