Entry

今読んでる本 - 『Win32アプリケーションデバッグ技法 』

2009年07月14日

今週の連休で読もうかと思ってたんですけど,面白いので読んでます。この本,これまでは勤め先にあったのをちら見してたんだけれども,役立ちそうなので自分でも買いました。この頃,デバッグ本ばかり読んでいる。

Win32アプリケーションデバッグ技法 (Ascii books)
ナンシー ニコライセン エクセルソフト
アスキー
売り上げランキング: 166465

本書は1997年出版ということで,この界隈からするとものすごく古い本です。VC++ のバージョンも4.0が対象になっている。しかし,本書の類書は,現在出版されている書籍では見当たらないんじゃないかと思います。

Windows プログラミングのデバッグ本としては,上記の他に最近出版された『Windowsデバッグの極意』があります。しかし,本書はどちらかというとカーネルデバッグに重点が置かれていて,使われているツールも,通常の開発現場にはないようなもんを使ってる。『Win32アプリケーションデバッグ技法』とは,ちと毛色が違います。

Windowsデバッグの極意 ツールを使いこなして、バグハント!
Mario Hewardt Daniel Pravat
アスキー・メディアワークス
売り上げランキング: 7206

『Win32アプリケーションデバッグ技法』は,Windows の環境の開発で最もよく使われている Visual C++ を使ったデバッグ技法を集約しています。あたしが見た限りですけれど,こゆ本は今のところ他にないと思う。

特別なツールを使う前に,まず自分が普段使っているツールの機能を使いこなすことが重要なわけで,まえがきにあることは,今でもよく当てはまるものの実践されていないことだと思ったりします。

プログラマがアプリケーションの実行環境を本当に理解していることを示す最良の証拠は、それを作るのに使った開発ツールも、また理解しているということだ。それは、特に対話型のデバッガに関するプログラマの知識についても言えることなのだ。

〔snip〕

私は初級プログラミング実習の学生たちを教えているうちに、次の2つのことを予期するようになった。ひとつは、必ずと言っていいほどいつも、学生たちはアプリケーションのコンパイルが終わる興奮するということ。無邪気な学生たちは、必ずと言っていいほどいつも、これで課題が終わったも同じ、と思い込んでしまうものだ。「あなたたちは、それでようやくプログラマになるための勉強を始められる地点に到達したのですよ」と言って彼らの幻想を打ち砕くことには、やや意地悪な喜びを感じる。

『Win32アプリケーションデバッグ技法』(ナンシー ニコライセン,アスキー,1997年,p7)

例えば,Visual C++ でデバッグをする際に使われる,レジスタウィンドウや変数ウィンドウ,それにコールスタックウィンドウといったツールを,ちゃんと使いこなしている人はどれだけいるだろう。混合モードの表示画面(アセンブリが表示される)を使ってデバッグできる人はどれだけいるでしょう。また,Spy++ が何をするツールか分かっている人はどれだけいるでしょう。

巷には,サードパーティ製の静的デバッガ(コード検証ツール)や lint の類もあるけれど,VC++ それ自体も,さまざまな方法で目の前のソースコードの挙動を解析するためのツールが用意されています。特別なツールを使わなくても,使えるツールは目の前にあるし,目の前にあるものすら使いこなせない人が,特別なツールを使いこなせるもんでもないんじゃないか,と,少し硬派な意見。

本書は,特にレジスタウィンドウや混合モードを使いこなすテクニックが見ものです。VC++ が生成するオブジェクトコードをアセンブリレベルでデバッグする技法を,実際のコードを追いながら順に説明している。昔の人は当然のようにやってたことらしいんですが。もちろん,デバッグする際に設定するビルドオプションやマクロ定義の意味についても,最初で詳しく説明しています。

こゆノウハウは,本書の現在の位置づけと同じく,今ではむしろ廃れつつあるんじゃないかと思ったりします。一部のベテランさんは,当然のごとく使いこなしているんだけれども,なかなか継承されていなかったりする。プログラミング書籍の役割ってのには,こうした本当の意味でのノウハウを伝えて残すこともあると思うんだけれども,この頃の書籍はどうも安くて浅い話ばっかな気もします(気のせいか?)。ま,書き手がいないってのもあるんだろうけど。

本書は,C/C++ にある程度親しんだ人で,しかも Visual C++ をある程度使い込んだ人(中級者)向けの本ってなことになっています。時代的な要素も勘案すると,もすこしレベルは高いのかも。今でも役立つ情報と古くなった情報を取捨選択して読む必要があるもんで。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN