2009-09-30 18 views
7

Estoy intentando pasar de Emacs v22.3.1 a v23.1.1 y todo iba bien hasta que intenté ejecutar gdb usando gud dentro de Emacs.Usando gdb en Emacs 23

Cuando hago meta-x gdb y doy un comando de 'gdb/my/executable/here' la ventana aparece bien, pero cuando escribo un comando en el indicador gdb al presionar la tecla return para ejecutar el comando, no pasa nada, la barra de estado dice 'Depurador: ejecutar' y el resultado nunca se muestra. Puedo escribir 'ctrl-c ctrl-c' para cancelar el comando y obtener el prompt '(gdb)' de nuevo, pero otro comando simplemente falla de la misma manera.

Esto es gdb v6.8 en Linux Centos v4 32bit.

¿Alguien más ha enfrentado este problema? ¿Cuál es la mejor manera de proceder?

I adjunto al BGF desde un indicador (no GUD) y tiene este seguimiento de la pila:

#0 0x00fd77a2 in _dl_sysinfo_int80() from /lib/ld-linux.so.2 
#1 0x0020108d in poll() from /lib/tls/libc.so.6 
#2 0x08111a07 in gdb_do_one_event (data=0x0) at event-loop.c:759 
#3 0x0810f05f in catch_errors (func=0x8111970 <gdb_do_one_event>, func_args=0x0, errstring=0x8236200 "", mask=6) at exceptions.c:513 
#4 0x080c25e7 in tui_command_loop (data=0x0) at .././gdb/tui/tui-interp.c:153 
#5 0x0810f2cf in current_interp_command_loop() at interps.c:276 
#6 0x0807f0b3 in captured_command_loop (data=0x0) at .././gdb/main.c:99 
#7 0x0810f05f in catch_errors (func=0x807f0a8 <captured_command_loop>, func_args=0x0, errstring=0x8236200 "", mask=6) at exceptions.c:513 
#8 0x0807f7eb in captured_main (data=0xbff00a60) at .././gdb/main.c:882 
#9 0x0810f05f in catch_errors (func=0x807f0e0 <captured_main>, func_args=0xbff00a60, errstring=0x8236200 "", mask=6) at exceptions.c:513 
#10 0x08080027 in gdb_main (args=0x7fffffff) at .././gdb/main.c:891 
#11 0x0807f0a1 in main (argc=-4, argv=0xfffffffc) at gdb.c:33 
#12 0x00153df3 in __libc_start_main() from /lib/tls/libc.so.6 
#13 0x0807efdd in _start() 

Respuesta

11

Aquí hay una conjetura salvaje: Bueno sin contar modo

de Emacs requiere que GDB se ejecute con anotaciones encendidos para que pueda analizar correctamente la salida. Me ha fallado esto al reescribir la línea predeterminada que emacs escupe después de presionar M-x gdb. Asegúrese de que "--annotate = 3" esté incluido en su línea de comando de gdb y vea si eso ayuda.

+0

Sí, --annotate = 3 está allí por defecto. – WilliamKF

+2

Uso gdb en emacs-23.1 sin ningún problema. ¿Qué sucede si usa el modo de texto en lugar del modo gráfico usando M-x gud-gdb? Asegúrese de no eliminar la opción --fullname de la línea de comando gdb. – Nate

+0

Usando M-x gud-gdb funciona bien. – WilliamKF

1

He usado gdb en emacs-23 ... O al menos, he llegado más lejos que tú ... Cuando lo probé, la ventana de la pila no se actualizaba ... Lo que terminé haciendo fue usando emacs-23 para editar (para la bondad de fuente anti-alias), pero usando emacs-22 para la depuración ... Puede tener ambos instalados ...

+0

Sí, eso es lo que estoy haciendo (ejecutando ambos) pero esperaba tener uno en ejecución, ya que es más eficiente tener un sistema unificado en lugar de dividirlo entre dos instancias ejecutables de emacs. – WilliamKF