gdb - significado - ddd cuelga en el inicio
ddd yugioh (8)
La pregunta se ha hecho antes y veo un informe de errores en los grupos de noticias de ddd pero ninguna de las soluciones sugeridas funciona para mí.
Aparece, pero cuando intentas hacer algo como abrir un archivo, se cuelga con el mensaje "esperando hasta que GDB esté listo".
Un hecho crucial, informado por otros también, es que funciona bien para algunos usuarios y no para otros. He comparado los entornos y no puedo encontrar diferencias significativas. Cualquier sugerencia será más apreciada.
Al utilizar Ctrl + D, aparece un cuadro de diálogo que le pide que reinicie GDB, lo que soluciona el problema. En mi caso, eliminar el archivo ~ / .ddd o init en esta carpeta en particular no ayudó.
Creo que eliminar el archivo init dentro de .ddd también solucionará este problema. No es necesario eliminar toda la carpeta .ddd. Lo intenté y funcionó !
Además, si modifica ampliamente las opciones predeterminadas de ddd, como Botones y Pantallas gráficas, puede mover su archivo de inicio fuera de esta carpeta y luego copiar algunas de las opciones al archivo de inicio creado por ddd de forma predeterminada.
Nota: cuando reinicie ddd después de eliminar el archivo de inicio, se creará el archivo de inicio predeterminado.
El problema surge al abrir la ventana GDB Settings...
, incluso sin tocar ninguna configuración.
Debido a que eliminar el directorio de configuración ~/.ddd/
todo el tiempo no es una forma de hacerlo si ha personalizado su entorno DDD, he encontrado una solución para corregir el archivo ~/.ddd/init
que también podría ayudarlo sin eliminar el toda la configuración.
Cierra DDD y abre con tu editor de texto el archivo.
~/.ddd/init
Buscar la linea
set extended-prompt not set/n/
y quitarlo o reemplazarlo con
set extended-prompt /n/
Guarde y ejecute DDD. Comenzará como debería.
Debido a que esta tarea puede ser tediosa de repetir cada vez, especialmente si cambia la configuración de gdb con bastante frecuencia como yo, le sugiero que cree un alias en su entorno de shell como este.
alias fix-ddd="sed ''/not set/d'' -i $HOME/.ddd/init"
Este último enfoque tiene la ventaja de que funcionará para cualquier configuración de error en el archivo de inicio, sin su intervención específica.
Si no desea usar el cli para arreglar el archivo de inicio, otro método es editar el archivo de inicio como se sugirió anteriormente y si le sucede que abra por alguna razón el panel de GDB Settings...
recuerde deshabilitar en el Edit
menú la opción Save Options
y déjela deshabilitada hasta el próximo reinicio de DDD.
En aras de la integridad (según lo declarado por @hmogal) golpear
CTRL+d
durante la ejecución de GDB, mata a GDB y se reinicia permitiendo el uso de DDD. Desafortunadamente, este enfoque no es una buena solución porque borra toda la configuración de GDB dentro del archivo de inicio, incluso las configuraciones específicamente ajustadas por usted. Así que presta atención.
Todo lo probado con DDD 3.2.12 .
Eliminando costuras ~ / .ddd para resolver el problema.
Encontré este problema también. La solución fácil como se publicó anteriormente es eliminar el archivo de inicio en el directorio ~ / .ddd /.
Pero eso significa que todas tus personalizaciones se habrán ido. Así que empecé a buscar la verdadera causa. Observé que el problema solo ocurre después de haber utilizado el cuadro de diálogo "Configuración de GDB". Una vez que haya abierto este cuadro de diálogo, el archivo de inicio mencionado anteriormente crecerá porque allí se almacenarán muchas configuraciones de gdb.
Después de encoger esas líneas adicionales paso a paso encontré la "línea ofensiva". El problema se debe a la configuración de solicitud extendida. Después de abrir el diálogo de configuración de GDB, esta línea se leerá como
set extended-prompt not set/n/
Este "no configurado" es lo que gdb informará sobre "mostrar aviso extendido". Desafortunadamente, "set-prompt-extendido es un poco defectuoso en gdb, así que si escribo" set-prompt-set no establecido "en un gdb que se ejecuta desde un shell sin ddd involucrado, gdb también se bloqueará.
Parece que la única forma segura de configurar el indicador de extensión es cuando contiene la cadena "(gdb)". Así que modifiqué la línea ofensiva en el archivo de inicio y ahora se lee así:
set extended-prompt (gdb) /n/
Con esta configuración ya no encuentro el problema. Espero que ayude en su caso también.
Hacer un Ctrl + D, luego elegir "Reiniciar DDD" parece funcionar para mí.
La sugerencia de Decipher de simplemente eliminar el archivo de inicio también funcionó para mí.
Y para aquellos que no saben, ~/.ddd
es la carpeta .ddd
en su directorio de inicio.
Si el problema persiste, la siguiente solución puede ayudar:
- abra ddd como lo haría normalmente (por ejemplo,
ddd --debugger bashdb script.sh
) - escriba
exit
en el panel inferior de ddd
Esto parece matar una instancia de bashdb, y luego otra instancia de bashdb parece funcionar. Esta segunda instancia de bashdb parece funcionar bien, con la fuente del script bash finalmente apareciendo en el panel superior y permitiéndote avanzar y depurar.