Home > Tech > [Windbg 第1回] Windbgを知っていますか?

[Windbg 第1回] Windbgを知っていますか?

July 3rd, 2008

windbgみなさん、こんにちわ。gattsです。

これから何回かに渡ってWindbgについての技術的な話をしようと思います。

私は仕事でwindowsの案件をやっています。仕事をしていく中でOSがトラブルになったりシステムを検証したりします。そんな時に助けてくれるツールがWindbgです。このツールはMicrosoftさんが開発者向けに無料で公開しているツールなのです。何が出来るかというと、エラー発生時のダンプファイルとソースコード・シンボルファイルを使って情報を解析することです。

つい先日サーバが一定間隔でBSOD[ブルーバック]を起こして困ってしまった時も、発生した原因をこのツールと協力して探すことが出来ました。

是非みなさんもwindbgを使ってみてください。きっと役に立つと思います。

【ダンプファイルとは】

WindowsはOS自身で致命的なエラーが発生した場合にブルースクリーンになります。

画面がブルーになっている最中にOSはメモリー上のデータをそのままHDD上にMEMORY.DMP  というファイルとして保存しています。

そのほかにもuser mode process dumperというツールでiexplore.exeやEXCEL.exe などの実行ファイルもDMPファイルとしてメモリー上のデータを保存することが出来ます。

【シンボルファイルとは】

WindowsのOSの中ではイーサーネットと同じようにフレームが流れています。

Stack frameと呼ばれていてそのフレームにはオブジェクト情報(win32k.sys,nt.sys)とオブジェクトの命令情報が固定長のbitの中に格納されています。通常は”b521e7f8 80821d59 b521e964 00000001 b521e940″といった状態でまったくわけが分かりません。でもシンボルファイルがあるとその情報を翻訳してくれます。

“nt!KiFastCallEntry+0xf8” といった感じです。

STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
b521e7f8 80821d59 b521e964 00000001 b521e940 nt!KiFastCallEntry+0xf8
b521e87c ba7ec741 b521e964 00000001 b521e940 nt!ZwOpenSymbolicLinkObject+0x11
b521e97c ba7f081f b521e9a4 00000041 87abc79c SRTSP+0x1a741
b521e9ac ba7f1ccf b521ea18 e5559e10 ba7e742a SRTSP+0x1e81f

【ここで言われるエラーとは】

OS自体のブルースリーン(MEMORY.DMPが作成される)などのSTOPエラーやアプリケーションから発生する例外エラーなどです。

【検証時に役に立つ情報は】

MEMORY.DMP ファイルからはいろいろな情報が分かります。

そのときの動作状況(メモリ上で展開されていたアプリケーション)やシステムの構成情報(dllやsysファイルOSのバージョン)、BIOS情報やHW構成情報まで取得することができます。

つづく

Categories: Tech Tags: , , ,
Comments are closed.
Theme by NeoEase. Valid XHTML 1.1 and CSS 3.