Pregunta Gdb imprime en archivo en lugar de stdout


Estoy ejecutando gdb y quiero examinar uno de esos desafortunados objetos de dios. Se necesitan muchas páginas (¡y tengo un monitor de 24 pulgadas girado hacia los lados!) Para verlo todo. Para facilitar el uso, me gustaría que gdb imprima el objeto en un archivo en lugar de la pantalla para que pueda abrirlo en vi y muévete con facilidad. Con toda la versatilidad de gdb, debe haber una forma de hacerlo, ¿no?


74
2018-05-09 18:53


origen


Respuestas:


Necesita habilitar el registro.

(gdb) set logging on

Puede decirle qué archivo usar.

(gdb) set logging file my_god_object.log

Y puede examinar la configuración de registro actual.

(gdb) show logging

117
2018-05-09 19:04



Descubrí que puedes redirigir la salida de gdb a un archivo a través del run mando:

(gdb) run > outfile

10
2017-10-31 19:31



Extendiendo la respuesta de @qubodup

gdb core.3599 -ex bt -ex quit |& tee backtrace.log

el -ex switch ejecuta un comando gdb. Entonces, lo anterior carga el archivo central, se ejecuta bt comando, entonces quit mando. La salida está escrita para backtrace.log y también en la pantalla.

Otra invocación de gdb útil (que proporciona stacktrace con variables locales de todos los hilos) es

gdb core.3599 -ex 'thread apply all bt full' -ex quit

6
2018-04-24 09:54



Es posible que desee guardar la salida de comandos gdb en un archivo. Hay varios comandos para controlar el registro de gdb.

set logging on

Habilitar el registro.

set logging off

Deshabilitar el registro.

set logging file file

Cambia el nombre del archivo de registro actual. El archivo de registro predeterminado es gdb.txt.

set logging overwrite [on|off]

Por defecto, gdb se agregará al archivo de registro. Configure la sobrescritura si desea configurar el inicio de sesión para sobrescribir el archivo de registro.

set logging redirect [on|off]

Por defecto, la salida de gdb irá a la terminal y al archivo de registro. Establezca la redirección si desea que la salida vaya solo al archivo de registro.

show logging

Muestra los valores actuales de la configuración de registro.


5
2017-09-23 11:12



Un método simple para registrar gdb en un archivo sin dejar de ver el resultado (lo que facilita la escritura de comandos) es usar tee:

gdb command |& tee gdb.log

2
2017-12-11 04:09