debugging - GDB de Solaris: ¿cómo pausar la ejecución?
(3)
Acabo de encontrar una solución. Desde otra terminal, dé el siguiente comando:
kill -INT 1521
GDB pausará la ejecución sobre el programa depurado que recibe el SIGINT.
Estoy usando GDB para depurar un programa de fuente cerrada en Solaris 10 x86.
Adjunto gdb al programa y continúo la ejecución, sin embargo, cuando quiero pausar la ejecución más tarde para examinar algo de memoria, no puedo. Cuando presiono CTRL-C, solo imprime ^ C en lugar de pausar el programa y colocarme en un indicador (gdb).
bash-3.00# gdb --pid=1521
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.10".
Attaching to process 1521
Retry #1:
Retry #2:
Retry #3:
Retry #4:
[New LWP 1]
0xfe3b5a23 in ?? ()
(gdb) c
Continuing.
^C^C^C^C^C^C^C^C
¿Cómo regreso a un indicador de (gdb)? ¿Estoy haciendo algo mal o cómo puedo conseguir que esto funcione?
Como estás usando Solaris, y veo que estás usando bash, probablemente no estés configurando tu terminal correctamente, bash a menudo puede manejar mucho de esto por ti, pero si estuvieras en ksh o algo así, tu espacio de respaldo podría estar imprimiendo ^ H en lugar de retrocesos (en ese caso necesitas borrar completamente ''^ H'' ... siempre puedes configurar tu consola con sty cuerdo.
Un problema probable aquí, que no es un error, es que la aplicación a la que está depurando, está reiniciando su termnial, no estoy en una caja de Solaris en este momento, pero la GNU stty le permite hacer algo como "sttop tostop",
- [-] para detener los trabajos en segundo plano que intentan escribir en la terminal
También puede ejecutar reset o tset desde otra terminal y volver a configurar su ^ C
desde dentro de gdb, puede usar el alias "tty" o establecer inferior-tty / ruta / a / término
Set terminal for future runs of program being debugged.
Usage: set inferior-tty /dev/pts/1