4

こんにちは、現在、GDB を使用して Linux マシンでコード ベースをデバッグしています。現在、クラスのオブジェクト ptr からデータ メンバーの値を取得する際に問題に直面しています。オブジェクト ptr の位置を出力するには、"p" (印刷) または "display" コマンドを使用できます。

例:私はこのようなクラスを持っています

class abc
{
    string a;
};

したがって、私のコードでは、クラスabcのポインターを使用している場合、

abc* objPtr = new abc();

したがって、上記の行でブレークした後、objPtr を取得し、datamember a (abc::a) 値の値を確認したいと考えています。どうすればそれができますか?

(gdb) p objPtr
$2 = {px = 0x3ba6430690, pn = {pi_ = 0x3ba6430698}}

さらに、リスト/ベクターであるデータメンバーをチェックする別の方法はありますか?

4

3 に答える 3

1

答えがわかりました。

$p/a objPtr->datamember->[if datamember also has some data member then we can call it in recurcion / can also call member function].

list/vector については、 http://sourceware.org/ml/gdb/2008-02/msg00064/stl-views.gdbを参照できます。

于 2012-05-30T10:36:56.000 に答える
0

あなたが試すことができます:

$ p abc->c_str()
于 2012-05-30T10:12:05.277 に答える