書籍購入:その男、絶賛カーネルデバッグ中につき

冗談ではなく本当に絶賛カーネルデバッグ中なのである。Windowsだけど。

今、Windows用のデバイスドライバを開発中で、バグというか不具合というか、とにかくWindows API越しにデバイスを操作するアプリから見て予期せぬ現象が起きていて、調査中な訳だ。

しかし何しろ、

  • OSに関係なく、デバイスドライバの開発自体が初めて。
  • なのにオーディオデバイス用のドライバなので、参考になりそうな情報が他のデバイスよりも少なめ。
    • よくあるUSBデバイスなどのドライバ開発とは流儀が大分違う。
    • その為か、WDMの入門書も(役に立たないことはないけど)意外と的外れな印象。
    • ググっても日本語の情報なんてある訳がない。
  • しかも実は仮想デバイス用のドライバ。

……と、まあ実に不慣れな状況。

頼りになるのはまずMSDNで、オーディオデバイスドライバアーキテクチャから勉強中。何だかんだで本家のドキュメントは参考になる。

ただ全部英語だと苦しいので、そこら辺は日本語の書籍で補っている。デバイスドライバ一般の仕組みや挙動については『インサイド Microsoft Windows』が参考になるし、デバイスドライバの実装で使用できる一般的なAPIについてはWDMの本にも載っている。

単にオーディオデバイスドライバの開発の本筋の部分について書かれた日本語のドキュメントが見つからないだけだ……まあそれが問題だったりするのだが、贅沢はいえない。

幸いなことにこのドライバはWDKのサンプルコードを流用して開発しているので、あちこちにデバッグプリントが仕込まれている。

なのであちこちの情報を参考にして、開発中のドライバを入れたテスト用PCとホストPCをシリアル接続して、WinDBGカーネルデバッグしてデバッグプリントを垂れ流させる所までこぎつけた。そのおかげでドライバがどういう動作をしているのか、一気に理解が進んだのだが……そこから先の進展が全くない

色々と調べようにもWinDBGを初めとするツールの使い方がよく分からないし、それ以前にどんなツールが揃っているかの理解も曖昧だったりする。

何か良い情報源は無いかと探していたのだが、風の噂で良さそうな本があると聞いたので買ってみた。

Windowsデバッグの極意 ツールを使いこなして、バグハント!

Windowsデバッグの極意 ツールを使いこなして、バグハント!

Windows用の色々なツールの説明と、それらのツールをどう使ってデバッグするかというノウハウの本らしい。9,000円近くもする本で「結構高いな」と思ったのだが、案の定、表紙を含めて3.5cmの厚さだ。

実はWinDBGカーネルデバッグにてVisual Studioのデバッガみたいにソースレベルで色々とやりたいのだが、取りあえずソースモードに関する記述は見つかった(カーネルデバッグで使えるかは不明だが)。後で試してみるつもりだ。

あと、少し外しているかもしれないけど、この本も購入。

Windowsダンプの極意 エラーが発生したら、まずダンプ解析!

Windowsダンプの極意 エラーが発生したら、まずダンプ解析!

ダンプなので、今回やりたいこととは少しずれているのだが……この本でもWinDBGについて書かれているらしい。この手の本には珍しく(?)翻訳書ではない。

2冊あわせて12,000円強。さっそく来週から御利益がありますように。