3

私はemacsでgdbを使おうとしています。デバッグしようとしているライブラリはプロセスによってロードされ、直接実行することはできません。したがって、gdb内でattachコマンドを使用してプロセスにアタッチします。プロセスへのアタッチとブレークポイントの設定は、シェルからgdbを使用する場合は正常に機能しますが、emacsでgdbを使用する場合(MxgdbまたはMxgud-gdbを押す)、ブレークポイントを設定できません。「0x7efb04のメモリにアクセスできません」というエラーが表示されます。私はemacs23.1.1を使用しています。

これが私が従うプロセスの内訳です:

  1. M-x gdbまたはを押して、 M-x gud-gdbemacs内でgdbを起動します。
  2. デバッグシンボルでビルドされた実行可能ファイルの名前を入力します。
  3. 「attach[PID]」と入力して、実行中のプロセスにgdbをアタッチします。
  4. 次のように入力してブレークポイントを設定します:filename:linenumber。

最後のステップで、「0x7efb04のメモリにアクセスできません」というエラーが表示されます。

なぜこれが起こっているのか考えはありますか?

編集:DDD(UI for GDB)を使用すると同じエラーが発生します。だから私はそれがemacs特有の問題ではないと思います。

4

2 に答える 2

0

デバッグ情報を使用してコンパイルしましたか?問題を示すコードはありますか?これは他のIDEでも発生しますか?

于 2012-02-15T06:49:14.790 に答える
0

私はそれを考え出した。問題はステップ2にあります。デバッグシンボルでビルドされた実行可能ファイルの名前を入力すると、問題が発生します。代わりに、GDBを起動してプロセスにアタッチするだけで問題なく動作します。これが期待される動作かどうかはわかりません。

DDDでは、プロセスにアタッチする前に、デバッグシンボルを含む実行可能ファイルを最初に開く必要があります。DDDでそれを回避する方法がわかりません。

于 2012-03-01T08:34:44.567 に答える