ダンプが取得された際のパフォーマンスを確認する方法を紹介します。手順 (Windows Server 2019 で試しています。)1. ダンプ取得前に、以下のコマンドでトレースを開始します。このコマンドを実行することで、ダンプ取得時、メモリ上にあるトレースデーターを取得できます。logman start "NT Kernel Logger" -p "Windows Kernel Trace" (process,thread,cswitch,profile,disk,isr,dpc,net,img,registry,file) -bs 1024 -nb 20 20 -...
- 2021/03/17(水) 23:42:22|
- WinDbg
-
| トラックバック:0
-
| コメント:0
カーネルダンプから、ファイルを開いているアプリケーションを探す方法を2つ紹介します。いずれの方法も時間がかかるので、.logopen コマンドでログファイルに出力するようにすると便利です。.logopen /t c:\logs\mylogfile.txt/t をつけると、WinDbg の Process ID と、現在の日時をファイル名に追加してくれます。方法1(約 14 時間かかりました) 1.1. 以下のコマンドを実行します。!for_each_process "!handle 0 3 @#Process"1...
- 2021/03/10(水) 21:44:50|
- WinDbg
-
| トラックバック:0
-
| コメント:0
WinDbg Preview では、Windows 10 SDK からの新コマンド dx の結果を、コマンドを実行することなく GUI で確認することができます。GUI を表示するには「Model」タブの「Data Model」をクリックします。ウィンドウが表示されるので、あとは「+」を展開していきます。 例えば、「Sessions」→「[0x0]」→「Processes」でプロセス一覧を確認できます。「Sessions」→「[0x0]」→「Attributes」→「Machine」→「KernelObjects」→「SmBios」...
- 2021/03/06(土) 22:16:37|
- WinDbg
-
| トラックバック:0
-
| コメント:0
カーネルダンプからドメイン名、コンピューター名を確認するには「dpu mrxsmb!SmbCeContext」で確認できます。また、同じコマンドで、SKU + ビルド番号、SKU + バージョンも確認できます。ダンプを採取した環境の「システムのプロパティ」(= sysdm.cpl) は以下です。ダンプを採取した環境の「Windows のバージョン情報」(= winver.exe) は以下です。情報元Finding the Computer Name in a Crash Dump (英語)...
- 2021/02/28(日) 18:15:56|
- WinDbg
-
| トラックバック:0
-
| コメント:0
!storagekd を使用することで、カーネルダンプからディスクの情報を取得できます。!storagekd.storclass ストレージを表示します。以下は Azure の VM のカーネルダンプでの出力です。2つのディスクが使用されていることがわかります。ダンプを取得した環境のディスクの管理 (diskmgmt.msc) は以下です。!storagekd.storclass <FDO のアドレス>!storagekd.storclass の出力の「FDO」のアドレスを引数に渡すことで、より詳細...
- 2021/02/24(水) 18:47:42|
- WinDbg
-
| トラックバック:0
-
| コメント:0
カーネルダンプからレジストリの値を確認するには「!reg querykey」コマンドを使用します。!reg querykey <キーのパス>!reg querykey に指定する引数は、以下の方法でも確認できます。1.「!reg hivelist」を実施し、確認したいレジストリの HiveAddr を確認2.「!reg openkeys <上記 1 で確認した HiveAddr>」を実施...
- 2021/02/16(火) 20:32:28|
- WinDbg
-
| トラックバック:0
-
| コメント:0
カーネルダンプからハードウェア情報を取得できるコマンド !sysinfo と !cpuinfo を紹介します。!sysinfo!sysinfo は複数の引数をとります。!sysinfo を実行すると、引数が確認できます。!sysinfo cpuinfo を実行すると、CPU の情報を取得できます。!sysinfo machineid を実行すると、そのマシンの情報がわかります。以下は Azure の仮想マシン上のダンプに対する実行結果です。AWS EC2 インスタンスのダンプに対する実行結果では...
- 2021/02/07(日) 21:25:09|
- WinDbg
-
| トラックバック:0
-
| コメント:0
アプリケーションのクラッシュ時にカーネルダンプをとる方法を紹介します。デモアプリケーション以下のような、任意の入力をすると、0 で割り算が実施されクラッシュするアプリケーションを用います。#include <iostream>int main(){ int zero = 0; getchar(); std::cout << 5 / zero;}手順 (Windows Server 2019 で試しています。)1. アプ...
- 2020/05/06(水) 23:18:32|
- WinDbg
-
| トラックバック:0
-
| コメント:0
モジュールを WinDbg の「Open dump file」から開くことで、モジュールにアタッチすることなくシンボル情報を表示させることができます。以下、具体的な手順を C:\Windows\System32\ntdll.dll を例に記載します。手順1. WinDbg を開き「File」→「Open Crash Dump」を実行します。2. ファイルの種類を「All Files」に変更し、モジュールを選択し「Open」をクリックします。3. 「x ntdll!*」でシンボル情報が表示できます。4. 「lmvm...
- 2020/02/16(日) 23:33:17|
- WinDbg
-
| トラックバック:0
-
| コメント:0
概要WinDbg Preview の新機能 Timeline を紹介します。Timeline を使用することで、TTD トレースファイル内で発生した以下の4つのイベントのタイムラインがわかります。・Exception・Breakpoint・Function Call・Memory Access内容WinDbg Preview の新機能 Timeline を紹介します。手順1. WinDbg Preview で TTD のトレースファイルを開きます。(TTD については、以前のブログを参照ください。)2. 左下に Timelines のウィンドウ...
- 2020/01/13(月) 21:54:39|
- WinDbg
-
| トラックバック:0
-
| コメント:0