いい意味で裏切られた、やねうらお著『ひなた先生が教えるデバッグが256倍速くなるテクニック』

 やねうらおさんが書いていた連載記事『ひなた先生が教えるデバッグが256倍速くなるテクニック』の本が11月14日発売らしいですが、何故か本日売っていたので買ってきました。まだ全部読んでいないので、第1回〜第5回途中まで読んだ感想になります。ちなみに全部で第15回まであります。
連載記事を見ていなかったのもありますが、表紙絵からは地雷臭がしました。(笑)

ひなた先生が教えるデバッグが256倍速くなるテクニック (Software Design Books)

ひなた先生が教えるデバッグが256倍速くなるテクニック (Software Design Books)



しかし、この地雷臭は裏切られることになるのです…



 基本の流れは、主人公のケンイチがどのようにデバッグを追っていくのかを体系的に書いてあります。なので、デバッグ用のコードが何故このような処理になったのかを理解できると思います。


 初心者にもわかりやすいように書いてありますが、最初はわんわんとかゲコゲコなど、"動物を継承して犬や猫を作ります"といった会話が展開されて説明が長く感じました。理解できている方は、前半を早井先輩が仕事を振るまで飛ばしちゃっていいと思います。
理解できなければ戻って会話を見れば、スタックなどの専門用語もコラムで書かれていますので理解できると思います。


 第1回〜第3回を見る限り、ブレークポイントなどVC++デバッグ方法を紹介しているので「初心者向けだなー」と思って読んでいたのですが、第4回でいきなり『コールスタックから関数ポインタで関数の戻り先を調べる』という方法が出てきました。呼び出しがスタックに積まれるって独習Cとかで解説されましたっけ?(覚えていないのです)
第3章で正規表現が出ていたので、「C始めたばかりの人にはわからないだろうなー」と思っていたのですが、予感が的中しました。Cの文法を勉強中の方は、無理をせずに序盤のVC++の使い方を参考にする程度で良いと思います。(正規表現自体はスクリプト言語をやっていれば問題ないと思いますが)


 で、現在第5回の関数のhookingを見ていますが、スタックの構造で上位アドレスが下になったりしたので、私の頭ではショートし始めてきました。一気に読むと理解できないまま終わってしまいそうなので、今後はゆっくりと読んでいきたいと思います。
もっと詳しい本の評価は、連載時の感想を書いたhigeponさんの記事を参考にしてください。
(2008/11/18追記)やねうらおさんの記事で様々な反響がリンクされています。私の記事も張っていただきました。ありがとう御座います。


 簡単に読んだ感想ですが、この本はプログラムを始めたばかりの初心者へ向けたものではないと思います。しかし、VCの便利なショートカットなども載っていますので、VC++でプログラミングをしていてる方はPCの近くに常備していればバグで困ったときに助けてくれると思います。また、C/C++以外にもC#Javaデバッグ方法もちょっと載っています。
マイクロソフトの公式解説書に比べても7000円近く安いので、オススメです。


 C/C++の勉強は一通り終わっていないと無理な内容なので、プログラミングを始めたばかりの方は「デバッグではじめるCプログラミング」がよいのではないでしょうか?私は読んでいないので、書評は以下を参考にどうぞ。


(2008/11/18追記)私のC初心者の方へのオススメデバッグ?本は、美しいCプログラミング見本帖―ポインタ手習い指南です。最初にエラーしているプログラムコードが書いてあり、エラーしている実行結果も載っています。そのあと、間違っている部分はどこなのかを説明して正しいコードを最後に示しているので、分かりやすかったです。


.NET&Windowsプログラマのためのデバッグテクニック徹底解説 (マイクロソフト公式解説書)

.NET&Windowsプログラマのためのデバッグテクニック徹底解説 (マイクロソフト公式解説書)

デバッグではじめるCプログラミング

デバッグではじめるCプログラミング

美しいCプログラミング見本帖―ポインタ手習い指南

美しいCプログラミング見本帖―ポインタ手習い指南