shared object 中のグローバル変数を出力する

shared object 中のグローバル変数の中身をそれなりの見た目にして出力するツールなど。まぁ、なんか shinh さんの dumper が元ネタなわけですが。

DWARF を読んで、型情報を読んでいるので、-g とか -gdwarf-2 とかつけてコンパイルする必要あり。あと、libelf と libdwarf が必要。Debian 系だと libelf-dev, libdwarf-dev かな。RedHat 系はよくわからんですが。

久しぶりに C++ などで書いて思ったこと。

  • メソッドのパラメータを変更すると宣言と実装の両方編集する必要あってめんどい。
  • Google では例外禁止とか聞いた気がしたので例外なしでやってみたら一々返り値のチェックが必要でめんどい。
  • そもそもエラー処理がめんどい。めんどいので assert でお茶を濁す

やりたいこととか

  • *.o の読み込み。なんかちゃんと libelf つかえばいけそう

できてないこと

  • 関数ポインタ
  • 列挙型。まぁ、普通にやれば出来そう。

そもそもこんなの欲しい人いるのかという話なんだが。