.NET&Windowsプログラマのためのデバッグテクニック徹底解説

.NET&Windowsプログラマのためのデバッグテクニック徹底解説 (マイクロソフト公式解説書)
デバッグ技術」にフォーカスした本は少ないのでこういうタイトルみただけでつい買ってしまう.値段見て財布の中身見てため息ひとつ残してレジへ*1
この本の著者はMSDN Magazineで『Bugslayer』を執筆されているJohn Bobbins氏である.
http://msdn.microsoft.com/msdnmag/find/default.aspx?type=Ti&phrase=Bugslayer
本の内容は以下の通りだ.

目次

謝辞
はじめに

第1部 デバッギングにおけるゲシュタルト
第1章 バグとは
第2章 デバッグ入門
第3章 コーディングとデバッグ

第2部 パワーデバッギング
第4章 OSデバッグサポートとWin32デバッガ
第5章 Visual Studio .NETの高度な使い方
第6章 高度な.NETデバッグ
第7章 Visual Studio .NETを使った高度なネイティブコードデバッギング
第8章 WinDBGと高度なネイティブコードデバッグ技術

第3部 .NETのためのパワーツールとテクニック
第9章 Visual Studio .NETの拡張
第10章 マネージド例外の監視
第11章 フロートレーシング

第4部 ネイティブコードのためのパワーツールとテクニック
第12章 クラッシュアドレスとソース情報
第13章 クラッシュハンドラ
第14章 Windowsサービスと関連DLLのデバッグ作業
第15章 マルチスレッドデッドロック
第16章 テストの自動化
第17章 デバッグ版Cランタイムライブラリ
第18章 サーバーアプリケーショントレースツールの開発
第19章 ワーキングセットの軽量化

付録 参考資料

本書は必ずしも .NET でのデバッグに限定した本ではない.バグの定義から始まる概論的な第1部とWin32ネイティブコードのデバッグ技術にフォーカスした第2部は,特に教育現場でのよい参考書になるかと思う.デバッグの際に必要になりそうな周辺知識に関しても一通りのフォローがあり,x86アセンブリコードの読み方やMSIL命令の解説もされている.また,ヘルプに載っていないVisual Studio .NETの非公開機能の紹介などもある.
なお以下で第1章が公開されている.
http://www.microsoft.com/japan/msdn/net/books/debug/
さてここからは少し話が変わるが,(高校までの)学校の授業では教師も教科書も存在する.教科書が独学向けの専門書と大きく違うのは,それが教師の存在を前提に書かれていることだ.この場合裏をかいて敢えて教師向けの指導要領などを併読してみるという方法があって,意外と要点が分かりやすかったりする.つまるところどの教師でも「ここ大事だぞ」と言う箇所があって,それを知るには必ずしも授業を聞く必要はなくて教師の読んでいる物を読めば良いということがある.授業を理解することに集中するのが「受け身」の勉強とすれば,逆に授業そのものを予測し先行する「攻め」の勉強とでも言うのだろうか*2
このような「攻め」のスタイルは短期間に要点のみを押さえたい場合に特に有用と考えられる.「プログラミングの教え方」とか「デバッグ技術の教え方」という方向性で書かれた本がもしあれば,それは案外有用な参考書になりうるのではないかと思うのだが,どうであろうか.プログラミング系掲示板を眺めていても初歩的な質問に答えるよりはその問題を自力解決する方法を知って貰った方が良い,と思っている人はそれなりにいるようである.「デバッグ技術の教え方」というタイトルでスレッドでも立てたら結構なノウハウ*3が集まるかもしれない.

*1:実際はクォークとレプトン―現代素粒子物理学入門(asin:4563021717)も合わせて買っていてため息はふたつ

*2:例えば英文法解説(asin:4760820094)あたりを読んで英語教師の説明を予想してみるとか

*3:バッドノウハウも含めて