2016-08-10 36 views
3

私は私のダンプ・ファイルにあるものCLR例外の底に取得しようとしていますが、私は実行しようとして問題が生じています:- 指定されたモジュールが見つかりませんでした

0:000> .loadby sos clr 
The call to LoadLibrary(C:\ProgramData\dbg\sym\clr.dll\5348A1EF9a0000\sos) failed, Win32 error 0n126 
    "The specified module could not be found." 

私がロードされているものを見てみました、私は次を参照してください。

0:000> lm 
start    end     module name 
00000000`00190000 00000000`001a4000 MyTest (deferred)    
00000000`77a00000 00000000`77afa000 user32  (deferred)    
00000000`77b00000 00000000`77c1f000 kernel32 (pdb symbols)   C:\ProgramData\dbg\sym\kernel32.pdb\CEE1211DAF10494CAFDDBE2C4232EAE82\kernel32.pdb 
00000000`77c20000 00000000`77dca000 ntdll  (pdb symbols)   C:\ProgramData\dbg\sym\ntdll.pdb\8AAAEEE259C340FCADC53FAF9FEF22E92\ntdll.pdb 
000007fe`f8950000 000007fe`f9ef1000 mscorlib_ni (deferred)    
000007fe`f9f00000 000007fe`f9fd6000 MSVCR120_CLR0400 (deferred)    
000007fe`f9fe0000 000007fe`fa980000 clr  (pdb symbols)   C:\ProgramData\dbg\sym\clr.pdb\E3E0C76A7909454FB3C56B0C2CE5FFEB2\clr.pdb 
000007fe`fa980000 000007fe`faa1d000 mscoreei T (pdb symbols)   C:\ProgramData\dbg\sym\mscoreei.pdb\6D65F80ABA3D403D8F6F7214972B9BBF2\mscoreei.pdb 
000007fe`faa20000 000007fe`faa8f000 mscoree (deferred)    
000007fe`fd800000 000007fe`fd80f000 CRYPTBASE (deferred)    
000007fe`fdbb0000 000007fe`fdc1a000 KERNELBASE (pdb symbols)   C:\ProgramData\dbg\sym\kernelbase.pdb\D396875654E9416CBA16E51F8B0A8B1E2\kernelbase.pdb 
000007fe`fdd60000 000007fe`fde69000 msctf  (deferred)    
000007fe`fde70000 000007fe`fe073000 ole32  (deferred)    
000007fe`fe0b0000 000007fe`fe121000 shlwapi (deferred)    
000007fe`fe310000 000007fe`fe3da000 usp10  (deferred)    
000007fe`fe3e0000 000007fe`fe47f000 msvcrt  (deferred)    
000007fe`fe480000 000007fe`fe48e000 lpk  (deferred)    
000007fe`fe590000 000007fe`fe5af000 sechost (deferred)    
000007fe`fe600000 000007fe`fe62e000 imm32  (deferred)    
000007fe`fe630000 000007fe`fe697000 gdi32  (deferred)    
000007fe`fe910000 000007fe`fe9eb000 advapi32 (deferred)    
000007fe`ff800000 000007fe`ff92d000 rpcrt4  (deferred) 

はCLRでもっと見る:

0:000> lmvm clr 
Browse full module list 
start    end     module name 
000007fe`f9fe0000 000007fe`fa980000 clr  (pdb symbols)   C:\ProgramData\dbg\sym\clr.pdb\E3E0C76A7909454FB3C56B0C2CE5FFEB2\clr.pdb 
    Loaded symbol image file: clr.dll 
    Mapped memory image file: C:\ProgramData\dbg\sym\clr.dll\5348A1EF9a0000\clr.dll 
    Image path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 
    Image name: clr.dll 
    Browse all global symbols functions data 
    Timestamp:  Fri Apr 11 22:16:15 2014 (5348A1EF) 
    CheckSum:   009A762B 
    ImageSize:  009A0000 
    File version:  4.0.30319.34209 
    Product version: 4.0.30319.34209 
    File flags:  8 (Mask 3F) Private 
    File OS:   4 Unknown Win32 
    File type:  2.0 Dll 
    File date:  00000000.00000000 
    Translations:  0409.04b0 
    CompanyName:  Microsoft Corporation 
    ProductName:  Microsoft® .NET Framework 
    InternalName:  clr.dll 
    OriginalFilename: clr.dll 
    ProductVersion: 4.0.30319.34209 
    FileVersion:  4.0.30319.34209 built by: FX452RTMGDR 
    PrivateBuild:  DDBLD104 
    FileDescription: Microsoft .NET Runtime Common Language Runtime - WorkStation 
    LegalCopyright: © Microsoft Corporation. All rights reserved. 
    Comments:   Flavor=Retail 

そしてあたりとして@Thomasウェラーからの提案:

0:000> lmf m clr 
Browse full module list 
start    end     module name 
000007fe`f9fe0000 000007fe`fa980000 clr  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 

パス(C:\Windows\Microsoft.NET\Framework64\v4.0.30319は)私のPC上に存在するとSOS.dll内部があります。

追加情報:

  • ld clr; .reload /f
  • を助けていませんが、私は、CLRローディングパス
  • .load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll作品を修正するために.cordllを使用していませんでしたが、それは型に長いです

なぜ私のために働いていない.loadby sos clrですか? @Thomasウェラーで述べたように

+0

'.load'を答えにしたくないのは、単なる回避策であり、なぜそれが起こるのか、起こらないようにする方法を説明していないからです。 –

+1

"マップされたメモリイメージファイル"が問題のようです。私は、ミニダンプを作成したマシンのCLRバージョンがあなたのマシンと同じではないと思います。だからあなたはどこかから正しいバージョンを手に入れました。私はそれがc:\ programdataでどのように終わったのか推測できません。 sos.dllのバージョンはclr.dllのバージョンと一致する必要があります。そのため、.loadは回避策であるとは必ずしも保証されていません。 –

答えて

2

を使用して答えを考え出しました@トーマス・ウェラーの質問から学んだこと。だから、明らかに、 "Symbol File Path"のFile - >Symbol File Pathは、WinDbgを閉じるたびにクリアされ、それがなければ、私は得たエラーを.loadby sos clrで生成します。 File - >Symbol File Pathの "シンボルファイルパス"には、srv*C:\windbg\websymbolsのようなエントリが必要です(もちろんディレクトリが存在する必要があります)。あなたはクラッシュが、それは次のように出力 (:Symbol search path is: srv*C:\windbg\websymbolsラインに注意してください):持つべきダンプ開くと

一方

Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64 
Copyright (c) Microsoft Corporation. All rights reserved. 


Loading Dump File [C:\Users\XXXXXX\Desktop\AppCrash_XXXXXXXXXXXXX_d4c077fd50acba44bd2aceb966fe5424b98f3e_cab_9eb7d2f5\WERC4D4.tmp.hdmp] 
User Mini Dump File: Only registers, stack and portions of memory are available 


************* Symbol Path validation summary ************** 
Response       Time (ms)  Location 
Deferred          srv*C:\windbg\websymbols 
Symbol search path is: srv*C:\windbg\websymbols 
Executable search path is: 
Windows 7 Version 7601 (Service Pack 1) MP (4 procs) Free x64 
Product: Server, suite: TerminalServer SingleUserTS 
Machine Name: 
Debug session time: Tue Aug 9 02:05:43.000 2016 (UTC - 4:00) 
System Uptime: 79 days 17:08:17.121 
Process Uptime: 0 days 0:00:06.000 

を、これは私が以前持っていたものであり、これは、あなたが忘れてしまった意味します"シンボルファイルパス" を設定するWERは、私の場合は2つのファイルを生成し

Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64 
Copyright (c) Microsoft Corporation. All rights reserved. 


Loading Dump File [C:\Users\XXXXXX\Desktop\AppCrash_XXXXXXXXXXXXX_d4c077fd50acba44bd2aceb966fe5424b98f3e_cab_9eb7d2f5\WERC4D4.tmp.hdmp] 
User Mini Dump File: Only registers, stack and portions of memory are available 

Symbol search path is: srv* 
Executable search path is: 
Windows 7 Version 7601 (Service Pack 1) MP (4 procs) Free x64 
Product: Server, suite: TerminalServer SingleUserTS 
Machine Name: 
Debug session time: Tue Aug 9 02:05:43.000 2016 (UTC - 4:00) 
System Uptime: 79 days 17:08:17.121 
Process Uptime: 0 days 0:00:06.000 
+0

"シンボルファイルパス"の設定を保存する方法はありませんか? WinDbgをもう一度使う必要があるときに、私は数ヶ月後にもう一度これを打つつもりだと知っています... – Denis

+1

おそらく '_NT_SYMBOL_PATH' envを設定することができます。 (ここで説明します)(https://msdn.microsoft.com/en-us/library/windows/hardware/hh439335(v = vs.85).aspx)を参照してください。しかし、IIRC、WinDbgは[デフォルトのワークスペースに設定を保存するかどうか尋ねる](https://blogs.msdn.microsoft.com/ntdebugging/2010/05/07/uncovering-how-workspaces-work-in-風袋/)? – Groo

+1

シンボルパスが原因ですか?なぜなら、 '.loadby'はシンボルパスで動作するのではないかと思うのです。なぜなら、シンボル(PDBファイル)ではなくモジュールのパス(DLL)を使うべきだからです。 –

0

(ラインSymbol search path is: srv*に注意してください):TR iagedump.dmp(2 MiB)およびmemory.hdmp(400 MiB)。

triagedump.dmpには例外情報しか含まれていないため、SOSはそれに対応していません。

memory.hdmpはミニダンプです。SOSがCLRに正常にロードされました。

関連する問題