gdbでSTLコンテナの中身を表示するマクロ。
De-Referencing STL Containers:
http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
↑に貼り付けてある.gdbinitをそのまま自分のホームディレクトリに置いて試してみました。(自前の.gdbinitがない時点でヘッポコな気もしますが)
テスト用プログラム
#include <vector>
using namespace std;class val
{
private:
int a;
int b;
};int main()
{
vector<val> array;val a;
array.push_back(a);
return 0;
}
gdbセッションの例
Reading symbols from /home/syasuda/sandbox/test...done.
Breakpoint 1 at 0x80487df: file test.cpp, line 19.
(gdb) r
Starting program: /home/syasuda/sandbox/testBreakpoint 1, main () at test.cpp:19
(gdb) pvector array
elem[0]: $1 = {
a = 134517152,
b = -1073745000
}
Vector size = 1
Vector capacity = 1
Element type = val *
(gdb)
Eclipse辺りならこんなマクロ使わなくても大丈夫ですかね。
リンク
gdbでSTLのコンテナをprintで表示する
http://d.hatena.ne.jp/syasuda/20091029/1256834773
コメント