こりゃいいや

  • 投稿日:
  • by
  • カテゴリ:



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/test

Breakpoint 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