如何在gdb中打印wstring?
call printf %ls
有时只能工作,但要在gdb 6.3中完全工作,你需要在这里显示的void
强制转换和换行\n
:
call (void)printf("\"%ls\"\n",str.c_str())
这是一个更可靠的命令,你可以放在你的.gdbinit中,它也显示非ASCII代码点:
define wc_print echo " set $c = (wchar_t*)$arg0 while ( *$c ) if ( *$c > 0x7f ) printf "[%x]", *$c else printf "%c", *$c end set $c++ end echo "\n end
用a 或者输入wc
(简称wc_print
).std::wstring
wchar_t*
有关详细信息,请访问http://www.firstobject.com/wchar_t-gdb.htm