2010-05-26 20 views
17

Se ha preguntado antes y veo un informe de errores en los grupos de noticias ddd, pero ninguna de las soluciones sugeridas me funciona.ddd se cuelga al iniciar

Aparece, pero cuando intentas hacer algo como abrir un archivo, se cuelga con el mensaje "esperando hasta que GDB se prepare".

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 ninguna diferencia significativa. Cualquier sugerencia será muy apreciada.

+0

puede que no sea una mala idea publicar las cosas que ha intentado, incluso si no funcionó, o posiblemente incluso vincular a los informes de errores relacionados –

+0

punto tomado. Intenté: eliminar .gdbinit. Cambiar el mensaje a través de .gdbinit a "(gdb)" (el espacio final se supone que es significativo). Eliminé mi initrc. Ninguno funcionó. Aquí hay enlaces a informes de errores y soluciones sugeridas (que para mí no funcionó): http://bugs.gentoo.org/show_bug.cgi?id=93543#c10 http://osdir.com/ml/debugging .ddd.bugs/2003-02/msg00005.html –

Respuesta

23

Eliminando ~/.ddd costuras para resolver el problema.

+0

Limpio y simple. Esto debe extenderse al mundo, casi había abandonado ** ddd ** antes de ver esto. – albfan

+0

Resolvió el problema también para mí. Una vez. Entonces el problema apareció de nuevo. Y luego lo resolvió de nuevo. Y así. En resumen, tengo que eliminar ~/.ddd cada vez que llamo a ddd. –

2

Creo que eliminar el archivo init dentro .ddd también resolverá 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 init fuera de esta carpeta y luego copiar algunas de las opciones nuevamente al archivo de inicio creado por ddd de forma predeterminada.

Nota: Cuando reinicia ddd después de eliminar el archivo de inicio, creará el archivo de inicio predeterminado.

0

La sugerencia de Decipher de simplemente eliminar el archivo init funcionó para mí también.

Y para aquellos que no lo saben, ~/.ddd es la carpeta .ddd en su directorio personal.

1

Si el problema persiste, la solución siguiente puede ayudar:

  • ddd abierta como lo haría normalmente (por ejemplo ddd --debugger bashdb script.sh.)
  • tipo exit en el panel inferior de la ddd

Este parece matar una instancia de bashdb, y luego otra instancia de bashdb parece ejecutarse. Esta segunda instancia de bashdb parece funcionar bien, con la fuente bash-script finalmente apareciendo en el panel superior y permitiéndole paso a paso y depurar.

16

Encontré este problema también. La solución fácil como se publicó arriba es eliminar el archivo init en el directorio ~/.ddd /.

Pero eso significa que todas sus personalizaciones se habrán ido. Entonces comencé 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 reducir 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 la configuración del BGF diálogo de esta línea se leerá como

conjunto extendido-prompt no establece \ n \

Este "no ajustada" es lo BGF informar sobre "vista extendida-prompt". Unfortunatley "set extended-prompt es un tipo de error en gdb, así que si ingreso" set extend-prompt not set "en un gdb ejecutado desde un shell sin ddd, 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 he modificado la línea incorrecta en el archivo de inicio y ahora se lee como esto:

conjunto extendido-prompt (BGF) \ n \

Con este ajuste que no se encuentran con el problema por más tiempo. Espero que ayude en tu caso también.

+2

Esto también me solucionó el problema, sin tener que modificar mi configuración. – Anthony

+1

Encontré esta solución también, pero dejando vacío el campo de valor. Establecer un valor aún se cuelga al inicio. –

5

Hacer una Ctrl + D, y luego elegir "Reiniciar DDD" parece funcionar para mí.

+3

Funciona para mí también. ¡Estupendo! –

1

El problema surge al abrir la ventana GDB Settings..., incluso sin tocar ningún ajuste.

Debido a que eliminar el directorio de configuración ~/.ddd/ completo no siempre es un camino por recorrer si ha personalizado su entorno DDD, he encontrado una solución para reparar el archivo ~/.ddd/init que podría ayudarlo también sin eliminar toda la configuración.

Cerrar DDD y abierta con su editor de texto el archivo

~/.ddd/init 

Busca en la línea

set extended-prompt not set\n\ 

y quitarlo o reemplazarlo con

set extended-prompt \n\ 

Guardar y r un 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 bastante a menudo como yo, le sugiero que cree un alias en su entorno de shell de esta manera.

alias fix-ddd="sed '/not set/d' -i $HOME/.ddd/init" 

Este último enfoque tiene la ventaja de que funcionará para cualquier configuración con errores en el archivo init, sin su intervención específica.


Si no desea utilizar la CLI para fijar el archivo init otro enfoque es editar el archivo de inicio como el sugerido anteriormente y si le pasa a usted para abrir por cualquier razón el panel GDB Settings... entonces recuerda a deshabilite en el menú Edit la opción Save Options y déjela deshabilitada hasta el próximo reinicio DDD.


En aras de la exhaustividad (como se indica por @hmogal) golpeando

CTRL+d 

durante el ahorcamiento BGF BGF mata y lo reinicia permitiendo el uso de DDD. Lamentablemente, este enfoque no es una buena solución, ya que borra toda la configuración de GDB dentro del archivo de inicio, incluso configuraciones ajustadas específicamente por usted. Entonces presta atención.


Todo probado con DDD 3.2.12.

1

El uso de Ctrl + D muestra un cuadro de diálogo para reiniciar el GDB que soluciona el problema.En mi caso, borrar el archivo ~/.ddd o init en esta carpeta en particular no ayudó.

Cuestiones relacionadas