¿Cómo detengo una ejecución de gdb sin un punto de interrupción?GDB cómo detener la ejecución sin un punto de interrupción?
Respuesta
sólo tiene que utilizar una interrupción periódica Ctrl - c funcionará bien. GDB acaba de reenviar el SIGINT
al proceso de depuración que luego muere. GDB captará la salida no estándar y dividirá el proceso allí, por lo que aún puede examinar todos los hilos, sus pilas y los valores actuales de las variables. Esto funciona bien, aunque sería mejor usar los puntos de quiebre. La única vez que me encuentro haciendo esto es si creo que he entrado en algún tipo de ciclo infinito.
Intenté^C pero no funcionó. No puedo escribir nada en el mensaje. También el programa es una interfaz de usuario de subprocesos múltiples, ¿podría ser ese el problema? – anand
Ctrl-C woks como yo quiera, pero no reproduzco esto en GDB 7.7.1: el proceso no pareció obtener la Ctrl-C y morir. Solo fue detenido por GDB, no fue asesinado. Pulsar 'c' nuevamente o' detach' lo hace continuar desde donde se detuvo. –
Simplemente escriba BREAK sin ningún argumento.
Break, cuando se invoca sin argumentos, ruptura establece un punto de interrupción en la próxima instrucción a ser ejecutada en el marco de la pila seleccionada
En el contexto de gdb, ejecutar, detener, avanzar. Este era exactamente el tipo de "detención" que necesitaba, y la aplicación se explicaba en la documentación de gdb. +1 – hobb
iniciar un intérprete, encontrar el ID de proceso usando ps y enviarlo SIGSTOP o SIGINT mediante el uso de el comando kill (por ejemplo, kill -INT pid).
Las aplicaciones GUI no reaccionan a^C y^Rompen el camino de las aplicaciones de consola. Dado que estos proyectos más días no triviales tienden a ser las aplicaciones GUI o bibliotecas utilizadas principalmente en aplicaciones GUI, tiene dos opciones:
Enviar SIGSTOP a la aplicación de una terminal separada. Esto es engorroso.
Si presiona^C o^Pausa en el indicador GDB, GDB finalizará pero la aplicación seguirá ejecutándose. A continuación, puede ejecutar GDB de nuevo para conectarlo mediante el modificador de línea de comandos
-p
. Esto pierde el estado del depurador.
En ambos casos, es posible encontrar este útil: tasklist | grep
ProcessName
| sed -e 's/
ProcessName
*\([0-9]*\).*/gdb
ModuleName
-pid=\1/' > rungdb.sh
Puede modificar este para su uso en scripts de shell, archivos make o para enviar una señal en lugar de asociar el BGF .
info threads
te ayudarán a descubrir qué hilo quieres ver. A continuación, utilice thread
ThreadNumber
para cambiar a ella.
- 1. pausa gdb sin punto de interrupción
- 2. Establecer un punto de interrupción en GDB
- 3. ¿Cómo saltar a un punto de interrupción dentro de gdb?
- 4. gdb: establezca un punto de interrupción para un manejador SIGBUS
- 5. gdb punto de interrupción en pthread_create
- 6. sin detener todos los hilos en gdb
- 7. Depuración de Eclipse: parada sin un punto de interrupción
- 8. ¿Cómo volver a un punto de interrupción durante la depuración?
- 9. ¿Cómo funciona un depurador como gdb para establecer un punto de interrupción a través de JTAG?
- 10. GoogleTest: cómo establecer un punto de interrupción?
- 11. ¿Lanzar una excepción sin detener la ejecución?
- 12. Cómo establecer el punto de interrupción al principio de la ejecución del programa
- 13. ¿Cómo establecer un punto de interrupción en gdb para todas las invocaciones de una función?
- 14. configurando un punto de interrupción de salida de gdb no funciona?
- 15. ¿cómo puedo poner un punto de interrupción en "algo está impreso en el terminal" en gdb?
- 16. Establecimiento de punto de interrupción en GDB donde la función devuelve
- 17. Eclipse cdt/gdb punto de interrupción automático en la entrada del programa - ¿cómo deshabilitar?
- 18. gdb se conecta a un proceso sin detener
- 19. ¿Cómo configuro un punto de interrupción de software en un procesador ARM?
- 20. Cómo script de gdb (con python)? Ejemplo agregar puntos de interrupción, ejecutar, ¿qué punto de interrupción alcanzamos?
- 21. Solaris GDB: ¿Cómo pausar la ejecución?
- 22. gdb, establecer punto de interrupción en todas las funciones en un archivo
- 23. Establecer el punto de observación del hardware GDB/cómo configurar el punto de observación del software
- 24. Punto de interrupción señalando "objc_autoreleaseNoPool"
- 25. ¿Puedo establecer un punto de interrupción en 'acceso a memoria' en GDB?
- 26. ¿Podemos detener la ejecución de un constructor?
- 27. Depuración: código de omisión con un punto de interrupción
- 28. Detener la ejecución de JavaScript sin bloquear el navegador
- 29. rompe OpenJDK en processWorkerExit sin punto de interrupción
- 30. ¿Cómo detener la ejecución de servicios?
¿Cómo comenzó el proceso? ¿Cómo te apegaste a eso? Por defecto, adjuntar con 'gdb --pid' ya detiene el proceso. ¿Te refieres después de presionar 'c'? –