4

デバッグ目的で gdb を使用する C++ 開発に CDT を使用しています。デバッグ変数ビューには、宣言された変数の型のみが表示され、vtable 情報に基づく実際の型は表示されません。私は動的サブクラス化に大きく依存しているため、宣言された型には必要な情報が含まれていないことがよくあります。実際のサブクラスの値も調べる必要があります。この質問を見つけました: gdb を使用した C++ のポリモーフィック クラスの vtable で 、gdb は次のコマンドを使用して vtable 情報に基づいて実際の型を出力できると言われています。

set print object on

しかし、Eclipse CDT でこれを行う方法は?

ところで:これは非常に一般的なユースケースではないので、デフォルトで有効にする必要がありますか? 誰かが継承と仮想のものを使用するとすぐに、デバッグ中に実際のオブジェクト タイプを確認することが非常に重要になります。宣言された型だけを表示するのは、石器時代から来たような気がします。

4

1 に答える 1

2

これは、 Eclipse Junoがリリースされたときの CDT バージョンであったCDT 8.1以降で動作するはずです。動作するには GDB 7.5.1 以降が必要です。

最新の GDB を備えた Linux ディストリビューションの場合

Ubuntu 14.04 で CDT パッケージ化された Eclipse の Juno Release および Luna M6 Release バージョンを試しました (GDB-7.7 が付属しており、箱から出してすぐに動作しました。

7.5.1 より古い GDB バージョンの Linux ディストリビューションの場合

ディストリビューションで GDB が提供されていない場合でも、幸いなことにビルドは簡単です。ソースはhttp://www.gnu.org/software/gdb/download/からダウンロードでき、README ファイルの指示に従うだけです。ビルドに 20 分もかかりませんでした。

それが完了したら、次のようにして、新しい GDB バージョンを使用するように Eclipse を構成できます。

ウィンドウ->設定

メニューバーから。

次に、以下に示すように GDB エントリに移動し、「GDB debugger:」エントリを新しい GDB 実行可能ファイルのパスに設定します。

ここに画像の説明を入力

于 2014-06-23T16:33:42.150 に答える