debugging gdb solaris

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?


Esto sería un error en GDB.

Si puede reproducir esto con la versión actual de GDB de CVS Head , por favor presente un error .


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