7

Emacs v22.3.1 から v23.1.1 に移行しようとしていますが、Emacs 内で gud を使用して gdb を実行しようとするまではすべてうまくいっていました。

meta-x gdb を実行して「gdb /my/executable/here」のコマンドを実行すると、ウィンドウは正常に表示されますが、return キーを押してコマンドを実行するときに gdb プロンプトでコマンドを入力しても、何も起こりません。 bar には「Debugger:run」と表示され、結果は表示されません。「ctrl-c ctrl-c」と入力してコマンドを強制終了し、「(gdb)」プロンプトを再度表示することはできますが、別のコマンドは同じように失敗します。

これは Linux Centos v4 32 ビット上の gdb v6.8 です。

他の誰かがこの問題に直面しましたか? 続行する最良の方法は何ですか?

プロンプト (gud ではない) から 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 ()
4

2 に答える 2

11

ここに野生の推測があります:

Emacs の Gud モードでは、出力を適切に解析できるように、注釈をオンにして gdb を実行する必要があります。Mx gdb をヒットした後に emacs が吐き出すデフォルトの行を書き直すときに、私はこれに悩まされていました。gdb コマンドラインに「--annotate=3」が含まれていることを確認し、それが役立つかどうかを確認してください。

于 2009-09-30T13:49:18.040 に答える
1

私はemacs-23でgdbを使用しました...または、少なくとも、私はあなたよりも遠くに行きました...試してみると、スタックウィンドウは更新されません...私がやったことは、emacs-23を使用することでした編集用(アンチエイリアスフォントの良さのため)ですが、デバッグにはemacs-22を使用しています...両方をインストールできます...

于 2009-09-30T14:04:54.683 に答える