いけむランド

はてダからやってきました

デバカンに行ってきた


会場で本を買うと、もれなく T シャツがついてくると言われたので、それを Twitter で呟いたら、「俺のも買ってきて〜」と言われて、計三冊も買う羽目に...。


Debug Hacks -デバッグを極めるテクニック&ツール

Debug Hacks -デバッグを極めるテクニック&ツール


T シャツは白と深緑の 2 種類がありますが、後者を入手しました。


DEBUG HACKS T シャツ


あと、筆者の方々のサインがもらえるということで性懲りもなく、並んでみました。


DEBUG HACKS に筆者の方々にサインをしていただきました


内容については他に参加された方々がよりすばらしい詳細なレポートを書かれているので、そっちを見た方がいいです。><

以下、興味があったところだけのメモ。

strace

  • -i オプションでアドレスを表示して、それを gdb のブレークポイントに指定することでデバッグの助けになるが、実行時にアドレスがランダム化されている場合は残念ながら使うことができない。→ その場合はランダム化の機能をオフにしましょう。

gdb

  • symbol-file コマンドというのがあるんですね。いつも -g つきでしか調査しないため、わざわざシンボルだけ後から読み込む方法には気が回らなかった。
  • デバッグ用の関数の共有ライブラリをつくる。→ env LD_PRELOAD=libhoge.so gdb ... は便利そう。

yugui さん

  • レガシーコード
    • 何故そのコードが必要なのか?
    • そこから仕様を記述する。
    • 不明だったら削除する。
    • 削除したらエラーだった場合はテストケースに追加する。
  • Design by Contruct
    • assert を入れたらわんさか抵触した。→ 便利じゃね?
  • Ruby
    • debug.c : マクロをシンボル化するためだけのソースがある。
  • その他
    • マクロを部分的に適用するプロプロセッサが便利かもしれない。
    • evilruby : Ruby から C で書かれた Ruby の実行環境にアクセスできるライブラリ