2009年04月21日
『DEBUG HACKS』
takesakoさんがすでにレビューを書かれているけど、私のところにも献本いただいたので(ありがとうございます!)、ひととおり読んでみた。
オライリーのHACKSシリーズは、「単発だとブログのネタかWeb記事くらいにしか商業的にできないよねぇ」というちょっとニッチな小ネタ話題をある大まかなテーマで網羅的に収集している。「基礎知識から徐々にステップアップして…」といった構成のがっちりした書籍に比べると情報が散在してわかりにくいという欠点はあるけれども、「〜をしたい」という目的ドリブンな読み方・調べ方には便利だし、著者が身軽かつ楽しく自分が好きなものを書けるという利点があると思う(ただ、本書については発行スピードが最優先だったのか、日本語の品質にちょっと首をかしげるところも散見されるが)。
本書はその名のとおりコードの「デバッグ」がテーマだ。本書の「はじめに」でも述べられているように、プログラミングの入門書はあっても、デバッグの入門書というのはこれまで存在しなかったジャンルだ(テスト手法やコードレビュー手法などは人気だが)。本書ではフリーソフトウェアにおけるデバッグツールの代表格のgdbの使用方法を詳細に説明するほか、x86/x86-64のアーキテクチャおよびアセンブリの知識、valgrind等のツールの使用方法などを紹介する。gdbについて実践的に記述された書物というのはそれだけでも貴重だ。
ページの多くを割いて説明しているのが、LinuxカーネルおよびGNU/Linuxユーザランドアプリケーションのデバッグだ。吉岡氏を始めとする著者陣はすべてMiracleLinuxの社員で構成され、特にカーネルのデバッグについては序文を寄稿されているMatz(まつもとゆきひろ)氏が言うように「歴戦のプログラマが経験から獲得したバグの見つけ方・直し方が満載」である。Oopsの解析、クラッシュダンプ、ロックやセマフォの解決、OOM Killer、プロファイリングなど、著者陣の血から得られたLinuxカーネルのデバッグハックが数多く盛り込まれており、価値が高い。「Linus gitリポジトリを追いかけたらもう直ってました!」というオチが多いのは涙を禁じ得ない(古いカーネルを保守し続けるという業)。
GNU/Linuxについて深く記述されているということは、逆に言えば、MacOS XやWindowsといったほかのOSのプログラマにとっては、本書をデバッグの参考書として使うにはだいぶ物足りないものに感じるだろうということだ。本書が『BINARY HACKS』に「インスパイヤ」されて生み出されたように、『DEBUG HACKS MacOS X編』『DEBUG HACKS Windows編』といった書籍が登場することを期待しよう。
GNU/Linuxにかかわっている職業プログラマおよび趣味プログラマには、持っておいて損はない1冊だ。
![[hatena]](http://d.hatena.ne.jp/images/b_entry_de.gif)
![[RSS]](/d/rss10.png)