2009-09-30 14 views
7

Próbuję przejść z Emacsa v22.3.1 do v23.1.1 i wszystko szło dobrze dopóki nie próbowałem uruchomić gdb używając gud wewnątrz Emacsa.Używanie gdb w Emacs 23

Kiedy wykonuję meta-x gdb i wydaje polecenie "gdb/my/executable/here" okno pojawia się poprawnie, ale kiedy wpisuję polecenie w wierszu gdb po naciśnięciu klawisza Return, aby wykonać polecenie, nic się nie dzieje, pasek stanu mówi "Debugger: uruchom", a wynik nigdy nie jest wyświetlany. Mogę wpisać "ctrl-c ctrl-c", aby zabić komendę i ponownie otrzymać polecenie "(gdb)", ale inne polecenie nie działa w ten sam sposób.

To jest gdb v6.8 na Linux Centos v4 32bit.

Czy ktoś inny spotkał się z tym problemem? Jaki jest najlepszy sposób postępowania?

I dołączone do gdb z wiersza (nie GUD) i dostał ten ślad stosu:

#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() 

Odpowiedz

11

Oto dzikie przypuszczenie: gud-mode

Emacsa wymaga, aby gdb zostanie uruchomiony z adnotacje włączony aby mógł prawidłowo analizować dane wyjściowe. Trochę się z tym uporałem przy przepisywaniu domyślnych emacsów linii, które wypluwają po trafieniu M-x gdb. Upewnij się, że "--annotate = 3" znajduje się w wierszu poleceń gdb i sprawdź, czy to pomaga.

+0

Tak, --annotate = 3 jest domyślnie. – WilliamKF

+2

Używam gdb w emacs-23.1 bez żadnych problemów. Co się stanie, jeśli użyjesz trybu tekstowego zamiast trybu graficznego, używając M-x gud-gdb? Nie usuwaj opcji --fullname z wiersza komend gdb. – Nate

+0

Korzystanie z M-x gud-gdb działa dobrze. – WilliamKF

1

Użyłem gdb w emacs-23 ... Albo przynajmniej dostałem się dalej niż ty ... Kiedy spróbowałem, okno stosu się nie zaktualizowało ... To co zrobiłem to używanie emacs-23 do edycji (dla wygładzania czcionek wygładzanych), ale używanie emacs-22 do debugowania ... Możesz mieć oba zainstalowane ...

+0

Tak, właśnie to robię (działając jednocześnie), ale miałem nadzieję, że po prostu uruchomię jeden, ponieważ bardziej wydajne jest posiadanie zunifikowanego systemu zamiast dzielenia go na dwa wykonywalne wystąpienia emacsa. – WilliamKF