4

私はC++11機能を利用し、最終的にSTLデータ構造のきれいな印刷デバッグを取得するためにMacツールチェーンを更新してきました。Homebrewを使用してgcc4.7.2コンパイラをビルドしました。この新しいコンパイラを使用して、現在のプロジェクトのソースを再コンパイルすることができました。ただし、私が試したすべてのバージョンのgdbには、ブレークポイントの設定、ソースコードの表示、またはローカル変数の表示時にさまざまな問題があります。

Xcodeコマンドラインツールの一部としてインストールされていると私が信じているバージョンのgdb、バージョン6.3.50では、さまざまなテンプレートベースの変数を表示するのに問題があります。他のいくつかのgdbバージョン(7.3.1、7.4.1、7.5.1)もビルドして使用しようとしましたが、各gdbバージョンには、ブレークポイントの設定、ソースコードの表示、変数の表示を困難または不可能にする問題があります。具体的には、これらのgdbバージョンは、ヘッダーファイルで定義された関数のソースファイルまたは行番号を認識せず、これらのヘッダーファイル関数でブレークポイントを設定できず、多くのローカル変数が「最適化」されています。

他の誰かがこれらの問題を経験しましたか?もしそうなら、あなたはそれらを解決することができましたか?これらの問題を回避するために、ツールチェーンでどのバージョンを使用する必要がありますか?

ちなみに、私の開発は、最新のMountainLionアップデートを実行している最近のMBPに基づいています。私のIDEは、CDTバージョン8.1.1のEclipseJunoです。そして、はい、私が構築して使用しようとしたgdbのすべてのバージョンにコード署名しました。

ご入力いただきありがとうございます、

ボブ

4

1 に答える 1

0

多くのローカル変数が「最適化」されています。

これは、最適化されたコードのデバッグ中に発生していますか? もしそうなら、それは予想されます。古い GCC はあまり最適化されていなかったため、これまでにこのようなことが起こったことはなかったかもしれません。

-g -O0修正するには:フラグを使用してデバッグ対象のコードをビルドします。

于 2012-12-12T17:48:20.937 に答える