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 moverse con facilidad. con la versatilidad de todo del BGF, tiene que haber una manera de hacer esto, ¿verdad?Gdb print to file en lugar de stdout
Respuesta
necesita habilitar el registro.
(gdb) set logging on
se le puede decir qué archivo a utilizar.
(gdb) set logging file my_god_object.log
Y puede examinar la configuración de registro actual.
(gdb) show logging
He descubierto que se puede redirigir la salida del BGF a un archivo mediante el comando run
:
(gdb) run > outfile
Ese sería el resultado del programa que se está depurando, no el resultado del propio gdb. OP quería registrar la salida de gdb. –
vea también: http://stackoverflow.com/questions/2388561/block-output-of-debugged-program-gdb –
@thepaul pero esto es de hecho muy útil ya que estoy depurando un programa QT que simplemente destruye el stdin de gdb con su basura QDebug – rostamn739
Un método sencillo para iniciar la sesión GDB en un archivo al mismo tiempo viendo la salida (lo que facilita escribir comandos) es utilizar tee
:
gdb command |& tee gdb.log
Extendiéndose sobre la respuesta de @ qubodup
gdb core.3599 -ex bt -ex quit |& tee backtrace.log
el interruptor -ex
ejecuta un comando gdb. Entonces, lo anterior carga el archivo core, ejecuta el comando bt
, luego el comando quit
. La salida se escribe en backtrace.log
y también en la pantalla.
Otra invocación GDB útil (dando StackTrace con variables locales de todos los hilos) es
gdb core.3599 -ex 'thread apply all bt full' -ex quit
En algunos sistemas, debe escribir 'gdb -c core.3599 ...' – user7610
Es posible que desee guardar la salida de los comandos de 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
cambiar 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]
De forma predeterminada, 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.
- 1. anexar subproceso.Popen output to file?
- 2. ZipExtFile to Django File
- 3. C++ Indicador FILE a stdout?
- 4. Excepciones no detectadas en Tomcat print to localhost. [Date] .log en lugar de catalina.out
- 5. Node.js POST File to Server
- 6. ¿Cómo resuelvo un error "print() on file filele" en Perl?
- 7. Ruby Convert String to File
- 8. Groovy write to file (newline)
- 9. File API - Blob to JSON
- 10. gdb - generate-core-file para destino remoto?
- 11. Image File to PDF Stream Conversion
- 12. ¿Cuándo debo usar print en lugar de echo en PHP?
- 13. ¿Está configurando un FILE * igual a stdout portable?
- 14. save pylint message to a file
- 15. Correcto InstallUtil Path To File Sintaxis?
- 16. Android FileInputStream read() txt file to String
- 17. Windows Batch file - pipe to FIND
- 18. Qt object/class to Qt ui file
- 19. HTML5 save canvas to file en el servidor
- 20. Imprime el nombre `errno` en lugar del valor en GDB
- 21. ¿Por qué el comando print en gdb devuelve \ 035 para C++ std :: strings?
- 22. Python 2.7 print() error
- 23. gdb print no imprimirá algo legible desde mi matriz de caracteres
- 24. UnicodeEncodeError al redireccionar stdout
- 25. ¿Será igual a md5 (file_contents_as_string) md5_file (/ path/to/file)?
- 26. Redirigir la salida de Python 'print' a Logger
- 27. Cómo establecer los márgenes de QTextDocument y otras propiedades (setHTML, print to pdf)?
- 28. instrucción PRINT en T-SQL
- 29. print nombre-variable en Matlab
- 30. Pretty Print SQL en Ruby
Y si desea que la salida vaya _al solo_ al archivo de registro, use 'set logging redirect on'. –