Archive

Author Archive

[Windbg 第10回] Windbgでよく使うコマンド(その3)クラッシュしたサーバのハードウェア情報を確認する

November 21st, 2010 gatts No comments

今回も、前回の続きを書こうと思います。Windbgでブルースクリーンが発生したサーバのハードウェアの情報を確認するコマンドについて書こうと思います。ダンプからサーバの型番やCPU、BIOS情報を見ることができます。

1.!sysinfo cpuinfoコマンド

このコマンドはダンプを取得した機器のCPU情報を表示するコマンドです。

コマンド実行例

0: kd> !sysinfo cpuinfo
[CPU Information]
~MHz = REG_DWORD 2000
Component Information = REG_BINARY 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
Configuration Data = REG_FULL_RESOURCE_DESCRIPTOR ff,ff,ff,ff,ff,ff,ff,ff,0,0,0,0,0,0,0,0
Identifier = REG_SZ x86 Family 6 Model 14 Stepping 12
ProcessorNameString = REG_SZ Intel(R) Core(TM) Duo CPU      T2500  @ 2.00GHz
Update Signature = REG_BINARY 0,0,0,0,54,0,0,0
Update Status = REG_DWORD 2
VendorIdentifier = REG_SZ GenuineIntel
MSR8B = REG_QWORD 5400000000

2.!sysinfo cpuspeedコマンド

このコマンドはダンプを取得した機器のCPU処理速度を表示するコマンドです。

コマンド実行例

CPUID:        "Intel(R) Core(TM) Duo CPU      T2500  @ 2.00GHz"
MaxSpeed:     2000
CurrentSpeed: 2000

3.!sysinfo machineidコマンド

このコマンドはダンプを取得した機器のシステムボード情報を表示するコマンドです。

コマンド実行例

Machine ID Information [From Smbios 2.4, DMIVersion 0, Size=1412]
BiosVendor = Phoenix Technologies LTD
BiosVersion = 3.0.0017
BiosReleaseDate = 03/28/2007
SystemManufacturer = NEC
SystemProductName = Express5800/i110Rb-1h [N8100-1233]
SystemVersion = FR1.9
BaseBoardManufacturer = MICRO-STAR
BaseBoardProduct = MS-9635
BaseBoardVersion = 010

4.!sysinfo smbiosコマンド

このコマンドはダンプを取得した機器の情報をツリー状に表示するコマンドです。インストールされているBIOS、CPU、メモリなどを確認できます。

コマンド実行例

0: kd> !sysinfo smbios
[SMBIOS Data Tables v2.4]
[DMI Version - 0]
[2.0 Calling Convention - No]
[Table Size - 1412 bytes]

[BIOS Information (Type 0) - Length 24 - Handle 0000h]
  Vendor                        Phoenix Technologies LTD
  BIOS Version                  3.0.0017
  BIOS Starting Address Segment e048
  BIOS Release Date             03/28/2007
  BIOS ROM Size                 100000
  BIOS Characteristics
       07: - PCI Supported
       09: - Plug and Play Supported
       11: - Upgradeable FLASH BIOS
       12: - BIOS Shadowing Supported
       14: - ESCD Supported
       15: - CD-Boot Supported
       16: - Selectable Boot Supported
       19: - EDD Supported
       20: - NEC 9800 J-Floppy Supported
       26: - Print Screen Device Supported
       27: - Keyboard Services Supported
       28: - Serial Services Supported
  BIOS Characteristic Extensions
       00: - ACPI Supported
       01: - USB Legacy Supported
       08: - BIOS Boot Specification Supported
       09: - Fn-Key NET-Boot Supported
       10: - Specification Reserved
  BIOS Major Revision           255
  BIOS Minor Revision           255
  EC Firmware Major Revision    255
  EC Firmware Minor Revision    255
[System Information (Type 1) - Length 27 - Handle 0001h]
  Manufacturer                  NEC
  Product Name                  Express5800/i110Rb-1h [N8100-1233]
  Version                       FR1.9
  Serial Number                       
  UUID                          00000000-0000-0000-0000-000000000000
  Wakeup Type                   Unknown
  SKUNumber                     [String Not Specified]
  Family                        [String Not Specified]
[BaseBoard Information (Type 2) - Length 8 - Handle 0002h]
  Manufacturer                  MICRO-STAR
  Product                       MS-9635
  Version                       010
  Serial Number                          
[System Enclosure (Type 3) - Length 17 - Handle 0003h]
  Manufacturer                  
  Chassis Type                  Rack Mount Chassis
  Version                       856-126484-201
  Serial Number                  
  Asset Tag Number                           
  Bootup State                  Safe
  Power Supply State            Unknown
  Thermal State                 Safe
  Security Status               Unknown
  OEM Defined                   0
[Processor Information (Type 4) - Length 35 - Handle 0004h]
  Socket Designation            CPU#1    
  Processor Type                Central Processor
  Processor Family              01h - Other
  Processor Manufacturer        Intel Corporation
  Processor ID                  ec060000fffbe9bf
  Processor Version             Intel(R) Core(TM) Duo CPU      T2500  @ 2.00GHz                
  Processor Voltage             8ah - 1.0V
  External Clock                166MHz
  Max Speed                     2330MHz
  Current Speed                 2000MHz
  Status                        Enabled Populated
  Processor Upgrade             Other
  L1 Cache Handle               0005h
  L2 Cache Handle               0006h
  L3 Cache Handle               [Not Present]
  Serial Number                 
  Asset Tag Number              
  Part Number                   
[Cache Information (Type 7) - Length 19 - Handle 0005h]
  Socket Designation            L1 Cache for CPU#1
  Cache Configuration           0180h - WB Enabled Int NonSocketed L1
  Maximum Cache Size            0040h - 64K
  Installed Size                0040h - 64K
  Supported SRAM Type           0018h - Burst Pipeline-Burst
  Current SRAM Type             0018h - Burst Pipeline-Burst
  Cache Speed                   0ns
  Error Correction Type         Multi-Bit ECC
  System Cache Type             Data
  Associativity                 4-way Set-Associative
[Cache Information (Type 7) - Length 19 - Handle 0006h]
  Socket Designation            L2 Cache for CPU#1
  Cache Configuration           0181h - WB Enabled Int NonSocketed L2
  Maximum Cache Size            1000h - 4096K
  Installed Size                1000h - 4096K
  Supported SRAM Type           0018h - Burst Pipeline-Burst
  Current SRAM Type             0008h - Burst
  Cache Speed                   0ns
  Error Correction Type         Multi-Bit ECC
  System Cache Type             Unified
  Associativity                 4-way Set-Associative
[Onboard Devices Information (Type 10) - Length 6 - Handle 0013h]
  Number of Devices             1
  01: Type                      Video [enabled]
  01: Description               VGA
[Onboard Devices Information (Type 10) - Length 6 - Handle 0014h]
  Number of Devices             1
  01: Type                      Ethernet [enabled]
  01: Description               LAN1
[Onboard Devices Information (Type 10) - Length 6 - Handle 0015h]
  Number of Devices             1
  01: Type                      Ethernet [enabled]
  01: Description               LAN2
[OEM Strings (Type 11) - Length 5 - Handle 0016h]
  Number of Strings             2
   1                            HWID=041D
   2                            NEC_Product
[System Configuration Options (Type 12) - Length 5 - Handle 0017h]
[Physical Memory Array (Type 16) - Length 15 - Handle 0019h]
  Location                      03h - SystemBoard/Motherboard
  Use                           03h - System Memory
  Memory Error Correction       05h - Single-bit ECC
  Maximum Capacity              4194304KB
  Memory Error Inf Handle       [No Errors]
  Number of Memory Devices      2
[Memory Device (Type 17) - Length 27 - Handle 001ah]
  Physical Memory Array Handle  0019h
  Memory Error Info Handle      [No Errors]
  Total Width                   72 bits
  Data Width                    64 bits
  Size                          1024MB
  Form Factor                   09h - DIMM
  Device Set                    01h
  Device Locator                DIMM 1
  Bank Locator                  BANK 1
  Memory Type                   13h - Specification Reserved
  Type Detail                   0080h - Synchronous
  Speed                         400MHz
  Manufacturer                  7F7FFE0000000000
  Serial Number                        
  Asset Tag Number                 
  Part Number                   EBE10RD4AGFA-4A-E
[Memory Device (Type 17) - Length 27 - Handle 001bh]
  Physical Memory Array Handle  0019h
  Memory Error Info Handle      [No Errors]
  Total Width                   72 bits
  Data Width                    64 bits
  Size                          1024MB
  Form Factor                   09h - DIMM
  Device Set                    02h
  Device Locator                DIMM 2
  Bank Locator                  BANK 2
  Memory Type                   13h - Specification Reserved
  Type Detail                   0080h - Synchronous
  Speed                         400MHz
  Manufacturer                  7F7FFE0000000000
  Serial Number                        
  Asset Tag Number                 
  Part Number                   EBE10RD4AGFA-4A-E
[32Bit Memory Error Information (Type 18) - Length 23 - Handle 001ch]
[32Bit Memory Error Information (Type 18) - Length 23 - Handle 001dh]
[Memory Array Mapped Address (Type 19) - Length 15 - Handle 001eh]
  Starting Address              00000000h
  Ending Address                001fffffh
  Memory Array Handle           0019h
  Partition Width               01
[Memory Device Mapped Address (Type 20) - Length 19 - Handle 001fh]
  Starting Address              00000000h
  Ending Address                000fffffh
  Memory Device Handle          001ah
  Mem Array Mapped Adr Handle   001eh
  Partition Row Position        01
  Interleave Position           [None]
  Interleave Data Depth         [None]
[Memory Device Mapped Address (Type 20) - Length 19 - Handle 0020h]
  Starting Address              00100000h
  Ending Address                001fffffh
  Memory Device Handle          001bh
  Mem Array Mapped Adr Handle   001eh
  Partition Row Position        02
  Interleave Position           [None]
  Interleave Data Depth         [None]
Categories: Tech Tags: , , ,

[Windbg 第9回] Windbgでよく使うコマンド(その2)クラッシュ時に読み込まれていたドライバーを確認する

November 20th, 2010 gatts No comments

今回は、前回の続きを書こうと思います。Windbgでブルースクリーン発生時に読み込まれていたドライバーを確認するコマンドについて書こうと思います。

クラッシュ時のドライバー情報は確認できましたか?

1.x *!コマンド

ブルースクリーン発生時のデバイスドライバ(.sys)及びダイナミックライブラリ(.dll)のロード、アンロード状態を表示します。

コマンド実行例


1: kd> x *!

start    end        module name

80800000 80a7a000   nt         (pdb symbols)          C:\WINDOWS\Symbols(2003sp2x86)\ntkrnlmp.pdb\A91CA63E49A840F4A50509F90ADE10D52\ntkrnlmp.pdb

80a7a000 80aa6000   hal        (pdb symbols)          C:\WINDOWS\Symbols(2003sp2x86)\halmacpi.pdb\F799635F9A7C45BDBF439633754B99B61\halmacpi.pdb

b93e9000 b9407000   EraserUtilDrv10741   (deferred)            

b9407000 b9467000   eeCtrl     (deferred)            

b961f000 b9688000   SPBBCDrv   (deferred)            

b9688000 b969a320   NAVENG     (deferred)            

b969b000 b976cc40   NAVEX15    (deferred)            
----------------------一部省略-----------------------

f780f000 f7817000   rasacd     (deferred)            

f7991000 f7992280   swenum     (deferred)            

f7995000 f7996580   USBD       (deferred)            

Unloaded modules:

b9964000 b99c7000   eeCtrl.sys

b97bd000 b97d0000   NAVENG.SYS

b97d0000 b98a2000   NAVEX15.SYS
----------------------一部省略-----------------------

f7547000 f7553000   vga.sys

f7577000 f7580000   kbdhid.sys

f7597000 f75a1000   Flpydisk.SYS

f7517000 f7522000   Fdc.SYS

baf5c000 baf6e000   i8042prt.sys

2.lm t nコマンド

このコマンドはダンプファイル中のデバイスドライバ全ての情報を表示します。DLLは表示されません。

コマンド実行例

1: kd> lm t n
start    end        module name
80800000 80a7a000   nt       ntkrnlmp.exe Mon Mar 05 22:02:02 2007 (45EC14CA)
80a7a000 80aa6000   hal      halmacpi.dll Sat Feb 17 14:48:26 2007 (45D6972A)
b93e9000 b9407000   EraserUtilDrv10741 EraserUtilDrv10741.sys Fri Jan 18 11:44:27 2008 (4790128B)
----------------------一部省略-----------------------
f780f000 f7817000   rasacd   rasacd.sys   Tue Mar 25 16:11:50 2003 (3E800136)
f7991000 f7992280   swenum   swenum.sys   Sat Feb 17 15:05:56 2007 (45D69B44)
f7995000 f7996580   USBD     USBD.SYS     Tue Mar 25 16:10:39 2003 (3E8000EF)

Unloaded modules:
b9964000 b99c7000   eeCtrl.sys
    Timestamp: unavailable (00000000)
    Checksum:  00000000
----------------------一部省略-----------------------
f7577000 f7580000   kbdhid.sys
    Timestamp: unavailable (00000000)
    Checksum:  00000000
f7597000 f75a1000   Flpydisk.SYS
    Timestamp: unavailable (00000000)
    Checksum:  00000000
f7517000 f7522000   Fdc.SYS
    Timestamp: unavailable (00000000)
    Checksum:  00000000
baf5c000 baf6e000   i8042prt.sys

3.lmvmコマンド

このコマンドを使ってドライバーがどこに保存されているのか確認できます。analyze -vやKBコマンドで表示されたStack Text中のモジュールが何なのか、どこのファイルなのか知りたいときに便利です。OS起動後にそのファイルのプロパティーを確認して、ファイルのバージョンやメーカーを特定します。

コマンド実行例

1: kd> lmvm sysplant
start    end        module name
b9a3f000 b9a59000   SysPlant   (no symbols)          
    Loaded symbol image file: SysPlant.sys
    Image path: \SystemRoot\SYSTEM32\Drivers\SysPlant.sys
    Image name: SysPlant.sys
    Timestamp:        Sat Sep 08 13:55:14 2007 (46E22B32)
    CheckSum:         0002174B
    ImageSize:        0001A000
    Translations:     0000.04b0 0000.04e0 0409.04b0 0409.04e0
Categories: Tech Tags: , , ,

[Windbg 第8回] Windbgでよく使うコマンド(その1)クラッシュ時に起動しているアプリケーションを確認する

November 10th, 2010 gatts No comments

今回は、Windbgでブルースクリーンを調査するときに、クラッシュ時に起動していたアプリケーションを確認するコマンドについて書こうと思います。

障害発生時の起動プロセスが見えます。

みなさんもクラッシュ時の起動プロセス情報を確認してみてください。

1.!apcコマンド

障害発生時に起動していたプロセスを、起動した順序で表示します。Windbgが、クラッシュしたプロセスに対して、コメントを入れてくれることもあります。

コマンド実行例

1: kd> !apc
*** Enumerating APCs in all processes
Process 89f8a9b0 System
Process 89dc8020 smss.exe
----------------------一部省略-----------------------
Process 8883e020 pw.exe
Process 88407d88 ctfmon.exe

2.!vmコマンド

障害発生時に起動していたプロセスを、メモリ使用量ごとに表示します。メモリの消費量もわかるので、不安定になったプロセスを、追うことができるかもしれません。


1: kd> !vm

*** Virtual Memory Usage ***
 Physical Memory:      851779 (   3407116 Kb)
 Page File: \??\C:\pagefile.sys
   Current:   2095104 Kb  Free Space:   1985640 Kb
   Minimum:   2095104 Kb  Maximum:      4190208 Kb
 Available Pages:      721773 (   2887092 Kb)
 ResAvail Pages:       770214 (   3080856 Kb)
 Locked IO Pages:         420 (      1680 Kb)
 Free System PTEs:     186136 (    744544 Kb)
 Free NP PTEs:          32766 (    131064 Kb)
 Free Special NP:           0 (         0 Kb)
 Modified Pages:           67 (       268 Kb)
 Modified PF Pages:        65 (       260 Kb)
 NonPagedPool Usage:     7056 (     28224 Kb)
 NonPagedPool Max:      64639 (    258556 Kb)
 PagedPool 0 Usage:     15528 (     62112 Kb)
 PagedPool 1 Usage:      1846 (      7384 Kb)
 PagedPool 2 Usage:      1869 (      7476 Kb)
 PagedPool 3 Usage:      1844 (      7376 Kb)
 PagedPool 4 Usage:      1881 (      7524 Kb)
 PagedPool Usage:       22968 (     91872 Kb)
 PagedPool Maximum:     90112 (    360448 Kb)
 Shared Commit:         10625 (     42500 Kb)
 Special Pool:              0 (         0 Kb)
 Shared Process:         4849 (     19396 Kb)
 PagedPool Commit:      22992 (     91968 Kb)
 Driver Commit:          3446 (     13784 Kb)
 Committed pages:      114630 (    458520 Kb)
 Commit limit:        1337175 (   5348700 Kb)

 Total Private:         71992 (    287968 Kb)
         019c Rtvscan.exe      15558 (     62232 Kb)
         0a8c Smc.exe           4790 (     19160 Kb)
         036c svchost.exe       3543 (     14172 Kb)
         04b0 aps.exe           2338 (      9352 Kb)
         0fec ccSvcHst.exe      2151 (      8604 Kb)
         01c0 winlogon.exe      2090 (      8360 Kb)
         01fc lsass.exe         2075 (      8300 Kb)
         0d10 IEXPLORE.EXE      1786 (      7144 Kb)
         0b20 IEXPLORE.EXE      1729 (      6916 Kb)
         0e5c IEXPLORE.EXE      1726 (      6904 Kb)
         040c spoolsv.exe       1662 (      6648 Kb)
----------------------以下省略-----------------------
Categories: Tech Tags: , , ,

[Windbg 第7回] 取得したダンプをkanalyzeで開く

October 31st, 2010 gatts No comments

こんにちわgattsです。

前回は、ダンプファイルをWindbgにて開きましたが、調査とコマンドをウィーザード化してくれるkanalyzeを使ってみます。

kanalyzeを使うと何が便利なの?

1.シンボルファイルをWeb上から自動で読み込んでくれる

2.Windbgではコマンド実行が必要な調査情報をディレクトリで表示してくれる

ここで注意が必要なことがあります。kanalyzeは、ユーザーモードのダンプファイルを調査することはできません。

kanalyzeで開くストーリーはこんな感じです。

1.kanalyzeの起動 2.ダンプファイルの選択 3.ブラウズの実行 4.プログラム終了

といった感じです。

それではkanalyzeを利用してみます。

1.kanalyzeの起動

1.エクスプローラ以下のフォルダを開きます

C:\Program Files\Debugging Tools for Windows

2.ディレクトリ中に存在するkanalyze.exeをダブルクリックします

2.ダンプファイルの選択

1.Kanalyzeが起動すると以下のウィザードが立ち上がります

2.Browseをクリックしてダンプファイルを選択します

3.Perform a new memory dump….を選択し次へをクリックします

4.ファイルの読み込みにとても時間がかかるため待ちます

約10分~30分かかります

3.ブラウズの実行

1.読み込みが終了したらBrowseボタンをクリックします

ブラウズボタンをクリックするとディレクトリ構造でダンプ情報が表示されます

2.kanalyzeが、以下のようにダンプファイルをディレクトリ構造で表示します

Summaryにクラッシュ情報の概要が表示されます。(Stack情報が含まれる。)

TriageInfoにクラッシュしたモジュールの詳細情報が表示されます。

各ディレクトリを参照しながらOSの障害を調査していきます。

4.プログラム終了

1.ブラウザを終了するには×ボタンをクリックします

2.ブラウザを閉じた後次へをクリックします

3.Don’t save Backing Store Fileのチェックボックスにチェックを入れて次へをクリックします

調査終了後は特に利用しない、Storeファイルを作成してしまうのでチェックを入れます

4.次へをクリックします

5.Don’t save Signature ID Fileにチェックを入れて次へをクリックします

こちらもチェックを入れないと調査終了後は不要なSigneture IDファイルがアプリ起動毎に保存されてしまいます

6.完了をクリックします

Categories: Tech Tags: , , ,

[Windbg 第6回] 取得したダンプをWindbgで開く

August 23rd, 2010 gatts No comments

こんにちわgattsです。

今回は取得したダンプを調査する前段階について書こうと思います。

取得したダンプを開く方法としてはWindbgで開く方法とkanalyzeで開く方法が

あります。今回は、Windbgで開く方法について書きます。

ダンプを開く手順とは?

ダンプを開くストーリーとしては、1.システム環境変数の設定 2.Windbgの起動

3.ダンプを選択して開く 4.コマンド実行 5.プログラムの終了といったながれです。

それでは、順番通り進んでみましょう。

1.システム環境変数の設定

環境変数は、 _NT_SYMBOL_PATH という変数名に対して

変数値 SRV*C:\WINDOWS\Symbols(2003sp2×86)*http://msdl.microsoft.com/download/symbols

を設定します。C:\WINDOWS\Symbols(2003sp2×86)というのは

先ほどインストールしたシンボルファイルのパスです。このパスには

シンボルファイルのキャッシュも保存されます。

ダンプを取得したOSの種類、サービスパックや32bit 64bitの違いがあるので

シンボルの指定には注意をしてください。

シンボルファイルの指定を失敗してしまうと以下のエラーが出てしまいダンプファイルをうまく読むことができません。


Symbol search path is: *** Invalid ***
****************************************************************************
* Symbol loading may be unreliable without a symbol search path.           *
* Use .symfix to have the debugger choose a symbol path.                   *
* After setting your symbol path, use .reload to refresh symbol locations. *
****************************************************************************
Executable search path is:
*********************************************************************
* Symbols can not be loaded because symbol path is not initialized. *
*                                                                   *
* The Symbol Path can be set by:                                    *
*   using the _NT_SYMBOL_PATH environment variable.                 *
*   using the -y <symbol_path> argument when starting the debugger. *
*   using .sympath and .sympath+                                    *
*********************************************************************
----------------------------------一部省略---------------------------------
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: nt!PVOID                                      ***
***                                                                   ***
*************************************************************************

http://msdl.microsoft.com/download/symbols という部分はマイクロソフトさんのシンボルサーバのパスです。

設定方法は以下通りです。

1.マイコンピュータのプロパティへ

2.システムのプロパティで詳細設定タブの環境変数(N)へ

3.システム環境変数中の新規ボタン(W)をクリック

4.システム変数を以下のように設定する

設定例)変数名

_NT_SYMBOL_PATH

設定例)変数値

SRV*C:\WINDOWS\Symbols(2003sp2×86)*http://msdl.microsoft.com/download/symbols

5.値を入力したらOKボタンをクリックして設定を完了します

設定後は、ログアウト・ログイン又は、OS再起動をお忘れなく。

2.Windbgの起動

Windbgは以下の通り起動させます。

1.スタートメニュから、すべてのプログラム、Debugging Tools for Windows、Windbgを選択します

2.Windbgが起動します

3.ダンプを選択して開く

1.FileメニューからOpen Crash Dumpを選択します

2.ダンプファイルが入っているディレクトリに移動してファイルを開きます

3.ダンプファイルを開くとファイルの読み込みが開始します

4.ファイルを読み込んでいる最中にワークスペースの作成の可否を質問されるのでNOを選択します

ワークスペースを作成してしまうと、ワークスペースファイルからダンプを開く必要が出てくるので、私はNOを選択して利用しています。

5.ファイルの読み込みが完了すると1: kd>と表示されますのでしばらくお待ちを

4.コマンド実行

ダンプの読み込みを終えるとコマンドを実行して障害発生時の状態を解析していきます。

まずは、プロンプトに !analyze -v と入力してみましょう。

するとこんな感じで実行結果が返ってきます。

1: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

IRQL_NOT_LESS_OR_EQUAL (a)             ←←この部分にバグのケースが表示されています(WebでこのケースIDを調べると情報が出てきます)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high.  This is usually
caused by drivers using improper addresses.
If a kernel debugger is available get the stack backtrace.
Arguments:
Arg1: 00000066, memory referenced
Arg2: d000001b, IRQL
Arg3: 00000000, bitfield :
bit 0 : value 0 = read operation, 1 = write operation
bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: 8083d52a, address which referenced memory

Debugging Details:
------------------

Page cb1c1 not present in the dump file. Type ".hh dbgerr004" for details
Page c689f not present in the dump file. Type ".hh dbgerr004" for details

WARNING: Process directory table base 00C8F000 doesn't match CR3 5216F000
Unable to get PEB pointer

WARNING: Process directory table base 00C8F000 doesn't match CR3 5216F000
Unable to get PEB pointer

READ_ADDRESS:  00000066

CURRENT_IRQL:  1b

FAULTING_IP:
nt!KiReadyThread+3
8083d52a 80786600        cmp     byte ptr [eax+66h],0

DEFAULT_BUCKET_ID:  CODE_CORRUPTION          ←←DEFAULT_BUCKET_IDに表示される内容で何に問題が発生しているかヒントを得ます。DRIVER_FAULTはドライバの不具合等…

BUGCHECK_STR:  0xA

TRAP_FRAME:  ba3a1984 -- (.trap 0xffffffffba3a1984)
ErrCode = 00000000
eax=00000000 ebx=88dc5dd8 ecx=88dcf1e0 edx=885c5c48 esi=88dcf200 edi=88dcf1c0
eip=8083d52a esp=ba3a19f8 ebp=ba3a1a08 iopl=0         nv up ei pl nz na po nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010202
nt!KiReadyThread+0x3:
8083d52a 80786600        cmp     byte ptr [eax+66h],0       ds:0023:00000066=??
Resetting default scope

LAST_CONTROL_TRANSFER:  from 8083d52a to 80836de5

STACK_TEXT:                       ←←STACK_TEXTはOSがSTOPエラーを起こす直前のスタックを16進で表記しています。
ba3a1984 8083d52a badb0d00 885c5c48 00000000 nt!KiTrap0E+0x2a7
ba3a19f4 8085adf8 88dcf1c0 88dc5db0 00000000 nt!KiReadyThread+0x3
ba3a1a08 8084db2a 88dc5db0 88dcf1c0 ba3a1a28 nt!KiAttachProcess+0x7b
ba3a1a34 b9a43b4c 88dcf1c0 ba3a1a60 ba3a1a98 nt!KeStackAttachProcess+0x97
WARNING: Stack unwind information not available. Following frames may be wrong.
ba3a1bfc baed000e 00000d28 000006bc 00000000 SysPlant+0x4b4c
ba3a1c40 809676e8 00000d28 000006bc 00000000 ggse+0x2200e
ba3a1c64 8090e4d5 00000001 00000008 888427d8 nt!PspExitProcess+0x5e
ba3a1cf0 8090e6ff 00000080 ba3a1d4c 80840b81 nt!PspExitThread+0x528
ba3a1cfc 80840b81 888427d8 ba3a1d48 ba3a1d3c nt!PsExitSpecialApc+0x1d
ba3a1d4c 80833e1a 00000001 00000000 ba3a1d64 nt!KiDeliverApc+0x1ae
ba3a1d4c 7c998768 00000001 00000000 ba3a1d64 nt!KiServiceExit2+0x37
0007fd14 00000000 00000000 00000000 00000000 0x7c998768

STACK_COMMAND:  kb

CHKIMG_EXTENSION: !chkimg -lo 50 -d !nt
808192e2-808192e5  4 bytes - nt!MiCleanSection+90f
[ dd d6 00 00:0a d2 6a 3a ]
80826b06-80826b09  4 bytes - nt!MiCheckControlArea+13a (+0xd824)
[ b9 fe ff ff:e6 f9 69 3a ]
----------------------------------一部省略---------------------------------
[ f9 44 fa ff:26 40 64 3a ]
8090e508-8090e50b  4 bytes - nt!PspExitThread+55f
[ 4d 05 00 00:a4 e4 5a 3a ]
809677f0-809677f3  4 bytes - nt!PspProcessDelete+147 (+0x592e8)
[ 65 72 fa ff:bc 51 55 3a ]
809a3c79-809a3c7d  5 bytes - nt!PsSetCreateProcessNotifyRoutine (+0x3c489)
[ 8b ff 55 8b ec:e9 e2 c3 52 3a ]
152 errors : !nt (808192e2-809a3c7d)

MODULE_NAME: memory_corruption

IMAGE_NAME:  memory_corruption

FOLLOWUP_NAME:  memory_corruption

DEBUG_FLR_IMAGE_TIMESTAMP:  0

MEMORY_CORRUPTOR:  LARGE

FAILURE_BUCKET_ID:  MEMORY_CORRUPTION_LARGE

BUCKET_ID:  MEMORY_CORRUPTION_LARGE

Followup: memory_corruption</pre>
---------

☆ほかのコマンドや調査については次回以降でお話します。

5.プログラムの終了

コマンドを実行したり、調査を終えたら×ボタンを押してプログラムを

終了します。ワークスペースの作成についても再度聞かれるのでNOを

選択して終了します。

Categories: Tech Tags: , , ,

[Windbg 第5回] ユーザメモリ空間のダンプを取得する。

December 2nd, 2009 gatts No comments

こんにちわgattsです。

今回は前回の続きを書こうと思います。

ユーザメモリ空間のダンプとは?

ダンプファイルにはもうひとつユーザ空間で動作しているプロセスのダンプが存在します。これをユーザダンプといいます。

具体的にプロセスの例を挙げるならばWORD.EXEやEXCEL.EXEにあたります。利用しているプログラム(Word,Excel)が固まってしまったり強制終了した場合の調査に有効です。

カーネルのダンプと同様にユーザダンプにも取得方法が2通りあります。

Read more…

Categories: Tech Tags: , , ,

[Windbg 第4回] カーネルメモリ空間のダンプを取得する。

December 1st, 2008 gatts No comments

こんにちわgattsです。

今回は問題を解決するための前段階として調査対象のダンプファイルの取得方法を書こうと思います。

Read more…

Categories: Tech Tags: , , ,

LINUXでマルチホーミング

November 25th, 2008 gatts 2 comments

こんばんは、今日はLinuxでマルチホーミングを実現する方法を紹介します。
LinuxサーバーはCentOS5.2を使っています。

ちなみにマルチホーミングとは?
企業などのネットワークからインターネットなど外部へ接続する際に、複数の経路(ISP)を使って接続すること(下記の図参照)で、接続を単一のISPに依存する場合に比べ、耐障害性の向上や回線負荷の軽減などが期待できるといったメリットが考えられます。

ではマルチホーミングの実現する方法を説明します。

Read more…

[Windbg 第3回] ツールはどのようにインストールしますか。

July 28th, 2008 gatts No comments

windbgこんにちわgattsです。

[Windbg第02回]Windbgはどこにありますか?でダウンロードした4種のファイル。第3回ではインストール方法についてご説明しましょう。私は次のようにインストールしています。

1.Windbg本体

本体のインストールはとても簡単です。

ウィザードに従ってライセンス同意しインストールオプションでCompleteを選択します。

Read more…

Categories: Tech Tags: , , ,

[Windbg 第2回] Windbgはどこにありますか?

July 7th, 2008 gatts No comments

windbgこんにちわgattsです。

前回の[Windbg 第01回] Windbgを知っていますか?の続きで、第2回です。

Windbgはどこにありますか?何をダウンロードすればよろしいでしょうか?

という疑問にお答えいたしましょう。

私は、このツールを使うときに以下のファイルをダウンロードします。

1.Windbg本体

2.Windows OS のシンボルファイル

3.Kanalyze 8.1

4.User Mode Process Dumper 8.1

これらのダウンロードファイルはいつもGoogleを使って探しています。

1.Windbg本体のファイルは

Debugging Tools for WindowsとGoogleで検索すると

URL#1

http://www.microsoft.com/japan/whdc/DevTools/Debugging/default.mspx

このページにアクセスできます。私はwindowsXPの32ビット版を使っているので

URL#2

http://www.microsoft.com/japan/whdc/devtools/debugging/installx86.mspx#a

Debugging Tools for Windows 32 ビット バージョンのインストール
最新の 32 ビット パッケージのダウンロード ページ。

を参照してダウンロードします。このインストールページに行くと最新バージョンの順番

通りに並んでいます。私はいつもURL#2の最新版を使うようにしています。

2.Windows OS のシンボルファイルのファイルは

URL#1のページにある

Windows シンボル パッケージのダウンロード
各種バージョンの Windows 用シンボル パッケージ。

という項目の先にあるページからシンボルファイルをダウンロードします。

シンボルファイルはOSの種類やサービスパックのバージョンごとに公開されています。

私は自分で使っているOSのバージョンを選択してダウンロードしています。

http://www.microsoft.com/japan/whdc/devtools/debugging/symbolpkg.mspx#d

3.Kanalyze 8.1のファイルは

GoogleでKanalyzeと検索します。

http://www.microsoft.com/downloads/details.aspx?FamilyID=E84D3B35-63C3-445B-810D-9FED3FDEB13F&displaylang=en

このページからすぐにダウンロードができます。

KernelMemorySpaceAnalyzer8_1_2930_0.exeをダウンロードします。

同じ場所にパワーポイントのドキュメントも一緒においてあります。

4.User Mode Process Dumper 8.1のファイルは

GoogleでUser Mode Process Dumperと検索するとすぐに見つかります。

URL#3

http://www.microsoft.com/downloads/details.aspx?FamilyID=E089CA41-6A87-40C8-BF69-28AC08570B7E&displaylang=en

このページからダウンロードできます。

みなさんは4つのファイルを手に入れることが出来ましたか?

つづく

[nice_link]過去の掲載
[第1回] Windbgを知っていますか?
[第2回] Windbgはどこにありますか?[/nice_link]

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