Cómo imprimir wstring en gdb
(3)
Supongamos que tienes una std::wstring str . Lo siguiente debería funcionar en gdb:
call printf("%ls", str._M_data())
(La opción -l en printf lo convierte en una cadena larga, y creo que necesita la sentencia " call " porque a la versión estándar de gdb no le gusta esa opción).
¿Cómo puedo imprimir wstring en gdb?
call printf %ls solo funciona a veces, pero para que funcione en gdb 6.3 necesita el vaciado de espacio void y el avance de línea /n muestran aquí:
call (void)printf("/"%ls/"/n",str.c_str())
aquí hay un comando más confiable que puede poner en su .gdbinit que también muestra los puntos de código que no son 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
simplemente ingrese wc (abreviatura de wc_print ) con std::wstring o wchar_t* .
Más detalles en http://www.firstobject.com/wchar_t-gdb.htm