2012-02-15 20 views
2

emacsでgdbを使用しようとしています。私がデバッグしようとしているライブラリは、プロセスによってロードされ、直接実行することはできません。したがって、私はgdbの中でattachコマンドを使ってプロセスにアタッチします。プロセスにアタッチしてブレークポイントを設定すると、シェルからgdbを使用するとうまく動作しますが、emacs(M-x gdbまたはM-x gud-gdbを押す)でgdbを使用すると、ブレークポイントを設定できません。それは私に "0x7efb04でメモリにアクセスできません"と言うエラーを示しています。私はemacs 23.1.1を使用しています。ここでemacs(またはDDD)でgdbを使用しているときにブレークポイントを設定できません

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

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

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

これは何が起こっているのですか?

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

答えて

0

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

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

0

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

+0

はい、デバッグ情報でライブラリをコンパイルしました。私はシェルでgdbを使ってデバッグすることができます。 DDD(UI for GDB)を使用しているときも同じエラーが表示されます。だから私はそれがemacsの特異的な問題ではないと思う。 – user1210622

関連する問題