2009-09-30 4 views
7

Я пытаюсь перейти от Emacs v22.3.1 до v23.1.1, и все прошло хорошо, пока я не попытался запустить gdb, используя gud внутри Emacs.Использование gdb в Emacs 23

Когда я делаю meta-x gdb и выдаю команду «gdb/my/executable/here», окно выглядит нормально, но когда я набираю команду в приглашении gdb после нажатия клавиши возврата для выполнения команды, ничего не происходит, строка состояния говорит «Debugger: run», и результат никогда не отображается. Я могу набрать 'ctrl-c ctrl-c', чтобы убить команду и снова получить приглашение '(gdb), но другая команда просто терпит неудачу таким же образом.

Это gdb v6.8 на Linux Centos v4 32bit.

Неужели кто-нибудь еще столкнулся с этой проблемой? Каков наилучший способ?

Я прикрепил к GdB из командной строки (не гуд) и получил эту трассировку стеки:

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

ответ

11

Вот дикая догадка: гуд режим

Emacs требует, чтобы GDB получает работать с аннотациями включены так что он может правильно разобрать результат. Я был немного этим, переписывая строку по умолчанию emacs, выплевывающуюся после удара M-x gdb. Убедитесь, что «--annotate = 3» включен в вашу командную строку gdb и посмотрите, помогает ли это.

+0

Да, --annotate = 3 по умолчанию. – WilliamKF

+2

Я использую gdb в emacs-23.1 без проблем. Что произойдет, если вы используете текстовый режим вместо графического режима, используя M-x gud-gdb? Обязательно не удалять параметр --fullname из командной строки gdb. – Nate

+0

Использование M-x gud-gdb работает отлично. – WilliamKF

1

Я использовал gdb в emacs-23 ... Или, по крайней мере, я стал дальше вас ... Когда я попробовал, окно стека не обновлялось ... То, что я делал, используя emacs-23 для редактирования (для удобства сглаживания шрифтов), но используя emacs-22 для отладки ... Вы можете установить оба ...

+0

Да, это то, что я делаю (работает с обоими), но я надеялся, что у вас будет только один запуск, так как более эффективно иметь единую систему вместо того, чтобы разделяться на два исполняемых экземпляра emacs. – WilliamKF

Смежные вопросы