TCC の話の追記

http://d.hatena.ne.jp/shinichiro_h/20101217#1292521642

のスライドは ELF のあたりから前の晩に適当に書いたとかなので、正直気合い入ってないというかグダグダというか ELF の話をすると言いつつ ELF の話が無かったりして、ひどかったです。まあやってから時間経っちゃうと熱意とかも消えつつあるよねーという。

いくつか混ぜた問題は、 EAX に代入した時の RAX は結構騙されてくれました。他は選択肢でバレバレで問題として成立してない感でした。

覚えてる質問。

libtcc というのはどういうインターフェースがあるのか。 tcc_new とかして context を作ってやって、 tcc_add_include_path とかで設定をいくらかした後、 tcc_add_file とかで .c だろうと .o だろうと追加してやれば tcc_get_symbol でシンボルのアドレスとか取れるよー的なことを言いました。しかし質問は nm がしたいという意図だったので冷静に考えれば link した後のバイナリ内でのシンボルのアドレスとかは取れない気がするので、 nm の代わりには使えないのでした…

この手の話をどうやって調べるのか。私は基本適当なアセンブリ書いてみて逆アセンブラにかけて吐かれたコードを見てみる…というのが好みでそんな感じでやったけど、マトモな手段としては IntelAMD のマニュアルを見るってのが一番気合い入ってて、そのへんの情報をまとめてくれてるサイト、例えば osdev-jp なり wikipedia なりなんかを見るってのもあると思いますよ、と答えました。

http://shinh.skr.jp/slide/tcc64/059.html

で書いたように、適当にフィールドを 64bit にしてやったら動いた、って部分も結構多くて、まあそれなりに大変だったものの、死力を尽くしたとかそういう感じはなかったように思う。

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