wdring'i gdb'ye nasıl yazdırabilirim?gdb'de wstring nasıl yazdırılır
9
A
cevap
1
std::wstring str
'unuz olduğunu varsayalım.
call printf("%ls", str._M_data())
(printf -l seçeneği uzun bir dize yapıyor ve ben sıradan gdb Printf o seçenek gibi değil çünkü "call
" deyimi gerektiğine inanıyorum.): Aşağıdaki gdb çalışması gerekir
0
8
call printf %ls
sadece void
döküm ihtiyaç ve burada gösterilen \n
linefeed bazen çalışır, ama hiç gdb 6.3 çalışmak için olsun. Ayrıca ASCII olmayan kod noktalarını gösterir gdbinit:
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
sadece wc
(wc_print
kısaltması) girmek ile ya bir std::wstring
veya wchar_t*
.
Daha fazla detay at http://www.firstobject.com/wchar_t-gdb.htm