これまた長い間やってみたかったけど、案外やってみると簡単で b2con までにやろうと思えばできたな、と。

dumper

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 デバッグ

SPS

http://risky-safety.org/~zinnia/sdl/works/sps/index.html

SPSをリリースしていただいた、というわけで改造したSPSのソース一応配るつもりで配ってないのを忘れてたので配ってみます。

http://shinh.skr.jp/binary/sps_hack.tgz

中身を見るとこれはひどいというか、そもそも .gob じゃなくて .c に改造しだしたあたりで深夜ハックの恐ろしさがほげほげ。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h