問題タブ [gud]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2667 参照

emacs - Emacs/GDB: gdb-many-windows を使用して常に特定のウィンドウにソースを表示する

Emacs 24 で GDB を にgdb-many-windows設定して使用tします。通常は独自のフレームで使用します。私は別の編集フレームを持っているのが好きです。次のようになります (粗雑な ASCII ダイアグラムで申し訳ありません)。

これは、1 つの大きな問題を除けば、非常にうまく機能します。gdb が別のソース バッファを表示する必要がある場合 (たとえば、アップ/ダウン/ステップの後)、常に「ソース」ウィンドウに表示されるとは限りません。たとえば、別のフレームのウィンドウで同じバッファーを開いている場合、gdb フレームでキーボード フォーカスを維持しながら、そのフレームが発生します。これは、フレームが互いに重なっている単一モニターのセットアップでは非常に厄介です。

同じソース バッファが別の場所に表示されているかどうかに関係なく、gdb-many-windows セットアップでソース ウィンドウを常に使用してソースを表示するようにします。どうやってやるの?


編集:再現するためのより詳細な手順。GDB 7.5-ubuntu で Emacs 24.2.1 を使用しています。この問題は、Ubuntu 10.04 と Linux Mint Nadia と Cinnamon で見られました。

  • この式を評価します。(setq gdb-many-windows t)
  • 少なくとも 2 つのファイルで C プログラムをコンパイルします。

例えば:

  • メインフレームにbar.cを表示させます。で新しいフレームを開きM-x 5 2ます。そのフレームで、gdb を で開始しM-x gdbます。上記のように、そのフレームには 6 つのウィンドウがあるはずです。ソース フレームの上に gdb フレームを配置します。
  • にブレークポイントを設定し、とのmain呼び出しをステップ実行します。が呼び出されると、bar.c が既にそこに表示されているため、メイン フレームが gdb フレームの上に持ち上げられますが、キーボード フォーカスは gdb フレームにとどまります。foobarbar

gdb-display-source-buffer問題の関数はgud.el.gzにあると思います。これを でオーバーライドしようと計画していますdefadviceが、アドバイスに詳しくありません。私がそれを理解したら、私はここに答えを投稿します。

0 投票する
1 に答える
80 参照

emacs - ECB に GUD バッファをコンパイル バッファとして扱わせるにはどうすればよいですか?

私はそのようにそれをやろうとしました:

ここに画像の説明を入力

しかし、それは機能していないようです。私が間違ったことをしましたか?

0 投票する
1 に答える
1882 参照

python - コードに明示的なブレークポイントを指定せずに、emacs の gud で ipdb を使用する

私は python.el を使用しています。メニューから「デバッガー」を選択し、「python -m pdb myfile.py」と入力すると、gud が起動し、分割フレームに (Pdb) プロンプトが表示されます。もう一方のコードは、最初の行にキャレットを付けて、準備ができていることを示します。たとえば、「n」ステップで次の行に進み、それに応じてキャレットが移動します。

代わりに「python -m ipdb myfile.py」と入力すると、フレームが分割され、1 つの分割に「gud」というラベルが付けられますが、ipdb コンソールは明らかではありません。つまり、この ipdb の開始方法は機能していないようです。ipdb.set_trace() を使用して手動で Python コードにブレークポイントを挿入すると、ipdb は問題なく動作しますが、gud インターフェイスは使用しません。これは、ipdb のスタック トレースが適切に機能するようにするための意図的なものですか?

もしそうならそれでいいのですが、set_trace() コマンドを手動で追加せずに emacs から ipdb を開始する方法はありますか?

0 投票する
2 に答える
144 参照

emacs - プログラムで Emacs ウィンドウを入力フォーカスとして設定する

プログラムで Emacs X Window に現在のユーザー入力フォーカスを取得させるにはどうすればよいですか?

これを次の Bash スクリプトで使用したい

Emacs ウィンドウが自動的にウィンドウ フォーカスを取得するようにします。

0 投票する
0 に答える
164 参照

debugging - Emacs の GDB の `info args`

Emacs の GDB 統合には、ほとんどの結果を示すLocals Buffer(gdb) info localsがあります。現在のフレームの結果も表示する方法はあります(gdb) info argsか (別のフレームが選択されるたびに手動で入力する必要はありません)。

0 投票する
2 に答える
776 参照

python - emacs 内の gdb: python コマンド (py および pi)

gdb を使用して C++ プログラムをデバッグしたいと考えています。piおよびコマンドを使用して、pygdb 内から python コマンドを評価します。これは、コマンド ラインから gdb を呼び出すと正常に機能します。ただし、を使用して emacs 内から gdb を呼び出すM-x gdbgdb -i=mi file_name、次のエラーが発生します。

  • コマンドはpiインタラクティブな python シェルを正しく開きますが、このシェルに入力すると次のようなエラーが発生します。

ファイル "stdin"、1 行
目 -interpreter-exec console "2" SyntaxError
: 無効な構文

  • コマンドは単一のpyコマンド ( などpy print 2+2) に対しては正しく機能しますが、複数のコマンドに対しては機能しません

gdb を で開始することでこれらの問題を回避できますがgud-gdbgdb-many-windows. たぶん、問題は入力後のプロンプトによって引き起こされますがpi、これはもはや(gdb)代わりではありません>>>か?

0 投票する
1 に答える
76 参照

gdb - gdb Python API:例外が消えますか?

特定の場所で、gdb 内の Python コードが例外を適切に処理しない理由を知っている人はいますか? または、明確にするために、おそらく例外メッセージは *gud バッファー以外の場所に送信されます。期待どおり、gdb がプロンプトに制御を戻していません。

(私はEmacs(24.5.1)gudモードでGNU gdb(GDB)7.11.50.20160212-gitを使用しています)

例えば:

「SomeEvent」が処理されると、「__call__」が悪いコードまで実行され、戻り、通常の操作が続行されます(私が観察できるように)。

サブクラス化された gdb.Breakpoint の Stop() など、他の「コールバック」タイプのメソッドでこの動作に気付きました。