最近、Windows ドライバーの開発を開始しました。実際にドライバーをどのようにデバッグするのか疑問に思っています。私が持っているセットアップは->ホストとしてWin7、VMwareのゲストとしてXPで、シリアルポートを介してデバッグしています。
私が行った研究:
私が話していることはほとんどありません。
デバッガーが単一の OS でどのように機能するかは既に知っています。その場合、デバッガーも同じ OS 上にあるため、どのプロセスが実行されているかがわかります。それは理解できます。しかし、ここでは、デバッガーはまったく異なる OS、まったく異なる環境上にあります。私は言うだけfile->open source files
で、ブレークポイントを設定できます!! さらに、ドライバーをロードすると、実際に壊れます。なぜ../どのように?this
XPのカーネルは、ドライバーのソースコードがあることをどのように認識しますか(ドライバーはカーネルの拡張機能であり、少なくともWDMであり、WDKについては知りません) 。そしてそれもその制御(環境)外ですか?つまり、ブレークポイントを使用して 10 個のファイルを開くことができますが、それは美しく機能し、失敗したりだますことはできません。
つまり、私が考えているのは、Win7 の windbg にソースを追加するたびに、そのソースからバイナリが作成され、XP がバイナリをロードするたびに、windbg が待機しているバイナリであるかどうかがチェックされるということです。上記のリンクで紛らわしいのは、Vikrant が、デバッガーがカーネル (XP) にプロセスをデバッグする意思があるかどうかを尋ねていると言っているということですname or id
。 . ソース コードがありますが、300 個のファイルからビルドされたドライバーがあり、windbg でおそらく最も単純なファイルが 1 つだけ開いている場合を考えてみてください。