首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使windbg从自定义位置加载clr.dll?

如何使windbg从自定义位置加载clr.dll?
EN

Stack Overflow用户
提问于 2013-10-18 17:31:49
回答 1查看 3.1K关注 0票数 0

我使用以下命令行启动windbg:

代码语言:javascript
复制
C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64>windbg -i c:\tmp\Psscor4\amd64;c:\tmp\Psscor4\x86;c:\tmp;srv*E:\symbols*http://msdl.microsoft.com/download/symbols

C:\Program Files (x86)\Windows Kits\8.0\Debuggers\x64>

然后加载内存崩溃转储并检查它从何处加载clr.dll:

代码语言:javascript
复制
Microsoft (R) Windows Debugger Version 6.2.9200.20512 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\tmp\Memory.dmp]
User Mini Dump File with Full Memory: Only application data is available

Comment: 'Dump created by DbgHost. First chance exception 0XE0434352'
Symbol search path is: c:\tmp\Psscor4\amd64;c:\tmp\Psscor4\x86;c:\tmp;srv*E:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is: c:\tmp\Psscor4\amd64;c:\tmp\Psscor4\x86;c:\tmp;srv*E:\symbols*http://msdl.microsoft.com/download/symbols
Windows 7 Version 7601 (Service Pack 1) MP (16 procs) Free x64
Product: Server, suite: Enterprise TerminalServer SingleUserTS
Built by: 6.1.7601.17965 (win7sp1_gdr.121004-0333)
Machine Name:
Debug session time: Mon Oct 14 13:45:55.000 2013 (UTC - 4:00)
System Uptime: not available
Process Uptime: 0 days 2:49:12.000
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
............................................................
Loading unloaded module list
..
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(5768.5db4): CLR exception - code e0434352 (first/second chance not available)
KERNELBASE!RaiseException+0x39:
000007fe`fd33bccd 0000            add     byte ptr [rax],al ds:00000000`3af07bb2=00
0:122> lm vm clr
start             end                 module name
000007fe`f9a70000 000007fe`fa3ce000   clr        (deferred)             
    Image path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
    Image name: clr.dll
    Timestamp:        Mon Jul 09 00:10:25 2012 (4FFA59B1)
    CheckSum:         00959DDE
    ImageSize:        0095E000
    File version:     4.0.30319.17929
    Product version:  4.0.30319.17929
    File flags:       8 (Mask 3F) Private
    File OS:          4 Unknown Win32
    File type:        2.0 Dll
    File date:        00000000.00000000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4
0:122> ld clr
Symbols loaded for clr
0:122> lm vm clr
start             end                 module name
000007fe`f9a70000 000007fe`fa3ce000   clr        (pdb symbols)          e:\symbols\clr.pdb\D3D86782AEDD446F917F5D81FDFD3D252\clr.pdb
    Loaded symbol image file: clr.dll
    Mapped memory image file: c:\tmp\clr.dll
    Image path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
    Image name: clr.dll
    Timestamp:        Mon Jul 09 00:10:25 2012 (4FFA59B1)
    CheckSum:         00959DDE
    ImageSize:        0095E000
    File version:     4.0.30319.17929
    Product version:  4.0.30319.17929
    File flags:       8 (Mask 3F) Private
    File OS:          4 Unknown Win32
    File type:        2.0 Dll
    File date:        00000000.00000000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4
0:122> .exepath
Executable image search path is: c:\tmp\Psscor4\amd64;c:\tmp\Psscor4\x86;c:\tmp;srv*E:\symbols*http://msdl.microsoft.com/download/symbols
Expanded Executable image search path is: c:\tmp\psscor4\amd64;c:\tmp\psscor4\x86;c:\tmp;srv*e:\symbols*http://msdl.microsoft.com/download/symbols

所以,我的问题是,当图像路径和符号路径都指向我真正需要的C:\Windows\Microsoft.NET\Framework64\v4.0.30319的另一个位置时,windbg为什么坚持从clr.dll加载clr.dll - c:\tmp

现在,当我强制加载符号时,我们可以看到:

代码语言:javascript
复制
Loaded symbol image file: clr.dll
Mapped memory image file: c:\tmp\clr.dll
Image path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Image name: clr.dll

我不喜欢它。我希望图像路径也来自c:\tmp

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-18 18:04:58

图像路径显示调试器(已转储的进程)在何处找到clr.dll。

不管你喜不喜欢,它注意到你可以这样做:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19455696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档