我使用windbg为Outlook插件执行dumpheap。该插件是用C ++编写的
环境是32位。 Outlook版本是2010年。我不确定.net版本是什么,但似乎有包含clr.dll的onlt v4.0
首先,我设置符号路径,然后附加到Outlook。
我使用了命令" .load C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ clr.dll"
并使用.chain查看,结果显示clr.dll在链中。
0:013> .chain
Extension DLL search Path:
C:\Program Files\Windows Kits\8.0\Debuggers\x86\WINXP;C:\Program Files\Windows Kits\8.0\Debuggers\x86\winext;C:\Program Files\Windows Kits\8.0\Debuggers\x86\winext\arcade;C:\Program Files\Windows Kits\8.0\Debuggers\x86\pri;C:\Program Files\Windows Kits\8.0\Debuggers\x86;C:\Program Files\Windows Kits\8.0\Debuggers\x86\winext\arcade;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Common Files\;C:\Program Files\SQL Anywhere 12\bin32;C:\Program Files\Windows Kits\8.0\Windows Performance Toolkit\
Extension DLL chain:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll: image 4.0.30319.1022, built Tue Jan 07 22:55:34 2014
[path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll]
dbghelp: image 6.2.9200.16384, API 6.2.6, built Wed Jul 25 19:11:41 2012
[path: C:\Program Files\Windows Kits\8.0\Debuggers\x86\dbghelp.dll]
ext: image 6.2.9200.16384, API 1.0.0, built Wed Jul 25 19:16:43 2012
[path: C:\Program Files\Windows Kits\8.0\Debuggers\x86\winext\ext.dll]
exts: image 6.2.9200.16384, API 1.0.0, built Wed Jul 25 19:21:27 2012
[path: C:\Program Files\Windows Kits\8.0\Debuggers\x86\WINXP\exts.dll]
uext: image 6.2.9200.16384, API 1.0.0, built Wed Jul 25 19:21:18 2012
[path: C:\Program Files\Windows Kits\8.0\Debuggers\x86\winext\uext.dll]
ntsdexts: image 6.2.9200.16384, API 1.0.0, built Wed Jul 25 19:22:12 2012
[path: C:\Program Files\Windows Kits\8.0\Debuggers\x86\WINXP\ntsdexts.dll]
但是,当我使用.cordll时,它显示没有CLR DLL。
0:013> .cordll
CLR DLL status: No load attempts
我在网上搜索并尝试了MSDN建议的一些解决方案,比如"使用g让程序运行一段时间"
但无论我等多久,clr.dll仍然没有加载。
任何人都可以告诉我在哪里可以进一步尝试?
或者,还有另一种方法可以做"!dumpheap -stat"。
感谢。