4

macports の GDB (v 7.3.1) を使用して、g++ 4.7 (これも macports から) でコンパイルされた実行可能ファイルをデバッグしようとしています。ただし、デバッガーを起動すると、次の出力が得られます。

GNU gdb (GDB) 7.3.1 Copyright (C) 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL バージョン 3 以降 http://gnu.org/licenses/gpl.htmlこれはフリー ソフトウェアです。変更して再配布します。法律で許可されている範囲で、保証はありません。詳細については、「コピーを表示」および「保証を表示」と入力してください。この GDB は「x86_64-apple-darwin11.2.0」として構成されました。バグ報告の手順については、次を参照してください: http://www.gnu.org/software/gdb/bugs/ ... BFD: 不明なロード コマンド 0x24 を読み取ることができません BFD: 不明なロード コマンド 0x26 を読み取ることができません BFD: 読み取ることができません不明なロード コマンド 0x24 BFD: 不明なロード コマンド 0x26 を読み取ることができません

次に、バックトレースを試みるたびに、デバッガーはスタックに関する情報を提供できません。次のような出力が得られます。

> #0  0x00000001085106d5 in ?? ()
> #1  0x000000010833d9b6 in ?? ()
> #2  0x0000000107e23000 in ?? ()
> #3  0x00007f828341f630 in ?? ()
> #4  0x00007f828341bc10 in ?? ()
> #5  0x00007f8283421950 in ?? ()
> #6  0x00007f8283427020 in ?? ()
> #7  0x00007f8283425510 in ?? ()
> #8  0x00007f82834195e0 in ?? ()
> #9  0x0000000100000001 in ?? ()
> #10 0x0000000100000000 in ?? ()

デバッグ シンボルを使用してビルドしましたが、Linux で実行可能ファイルを正常にデバッグできます。ここで何が起こっているのか、またはどうすれば修正できるのか、誰にもわかりません。デバッガーなしで特定の問題を修正するのは非常に困難です!

4

2 に答える 2

1

OSX や gdb の使用法についてはよくわかりませんが、これは gdb 7.3.1 のリリース直後に修正されたようです。OSX のリリースと gdb または binutils のリリースについて思い出したようです。ほぼ同時に、開発者は OS X に早期アクセスできませんでした。新しいバージョンの gdb を試すことができます。

7.3.1 で修正された直後に、次のパッチがコミットされたと推測しています。

http://permalink.gmane.org/gmane.comp.gnu.binutils/54607

于 2012-06-19T06:03:39.580 に答える
0

GDB 7.4.1 ではこの問題が修正されており、入手してビルドすることができました。

http://sourceware.org/gdb/wiki/BuildingOnDarwin

于 2012-08-04T21:13:13.297 に答える