http://shinh.skr.jp/binary/dumper.tgz
シリアライズっていうか構造体の中身を動的に取得できん、っていう話があったんですが、環境依存して良ければ -g オプションと DWARF2 でできるだろう、ということでとりあえず gdb がやってくれるみたいな変数の中身をダンプするものを作りました。
まだ途中だけど。今のところ
#include "dump.h"
typedef struct TestDump_ {
int i;
char c;
char* str;
void* ptr;
} TestDump;
int main(int argc, char* argv[]) {
TestDump td;
td.i = 3;
td.c = 'c';
td.str = "hoge-";
td.ptr = &td;
dump_open(argv[0]);
dump(&td, "TestDump");
return 0;
}の出力が
i = 3 c = 'c' str = "hoge-" (0x80530ed) ptr = 0xbfb25958
となってます。今は対応してない型がえらいあるということを解決して、あとちゃんとスコープの解決をしてやれば結構使えるかと思います。 dump(hoge); だけで printf デバッグ。