online - ¿Cómo volcar toda la sesión de GDB en un archivo, incluidos los comandos que escribo y su salida?
gdb windows (3)
En bash, puedo usar el comando de script
, que descarga todo lo que se muestra en el shell en un archivo, incluyendo:
- comandos escritos
- Línea PS1
- stdout y stderr de comandos
¿Cuál es el equivalente en gdb?
Intenté ejecutar el shell script
desde dentro de GDB, pero después de presionar regresar, estaba en el shell y perdí el indicador del shell y ya no podía ejecutar el comando. Además, no pude usar ctrl + c o ctrl + / para salir. Necesitaba forzar a matar el /bin/login tty2
para salir.
Echa un vistazo a la documentación de GDB. Búsqueda de "secuencias enlatadas de comandos". Hay una forma de guardar comandos GDB en un archivo y ejecutarlos con el comando source
y puede usar algunos comandos GDB en estos scripts para imprimir información disponible para GDB (como echo
, output
e printf
).
Si desea esa salida en un archivo, use el set logging file FILE
.
Si desea registrar la salida de GDB, puede utilizar los comandos de salida de registro de GDB , por ejemplo.
set logging file mylog.txt
set logging on
Si desea redirigir la salida de su programa a un archivo, puede usar una redirección, por ejemplo.
run myprog > mylog.txt
Consulte el capítulo sobre el programa IO en el manual de GDB para obtener más información.
- Cree un archivo de texto, es decir,
gdbCommands.txt
, con los siguientes comandos
set logging on my_log_file/nbt 10/nq
bt 10
, indica el número de líneas (llamadas a función) que necesitamos del seguimiento, en nuestro ejemplo son 10 líneas.
- Ejecute gdb usando el siguiente comando, asumiendo un archivo de volcado de núcleo core.2345
gdb -x gdbCommands.txt myApp core.2345
- ¡Abre
my_log_file
e inspecciona elmy_log_file
!