test - gdb ubuntu
¿Cómo puedo ejecutar comandos externos desde el símbolo del sistema de gdb? (4)
Estoy depurando un programa usando gdb. Cada vez que pierdo un punto de interrupción o decido agregar otro punto de vigilancia, tengo que terminar el proceso y volver a ejecutarlo. Para adjuntar el gdb existente a él, uso attach <pid>
. Sin embargo, tengo que averiguar el pid del nuevo proceso.
La forma en que lo hago hoy es suspender gdb, obtener el pid con ps -C <program_name>
y luego regresar a gdb para adjuntarlo.
¿Hay alguna manera de ejecutar un comando de Unix desde el símbolo del sistema de gdb sin salir al shell, de modo que pueda hacer algo como esto desde dentro de gdb?
attach `ps -C <program_name>`
Estoy trabajando en linux.
(gdb) shell de ayuda
Ejecuta el resto de la línea como un comando de shell. Sin argumentos, ejecute un shell inferior.
Después de terminar, puedes usar ''exit'' para volver a gdb.
Puede usar shell
seguido del comando que desea ejecutar, por ejemplo:
gdb$ shell g++ tsort.c -o tsort
Esta es solo una breve forma de la respuesta anterior.
Solo para ampliar la respuesta aceptada, ¡el atajo para shell
es !
.
(gdb) ayuda!
Ejecuta el resto de la línea como un comando de shell. Sin argumentos, ejecute un shell inferior.
gdb$ shell
shell$ execute_your_commands
shell$ exit
gdb$ you_have_returned_back_to_gdb_prompt