无法查看.NET Framework 1.1的dump文件?

经常看的dump都至少是.net framework 2的dump文件, 冷不丁开一个.net 1.1的dump, 发现问题还挺多.

经过一番摸索, 最后还是成功地查看了这个dump.

解决方案如下:

1. 在debugger所在的机器上安装.net framework 1.1.

2. 在debugger所在的机器上安装.net fraemwork 1.1 SP1

3. 使用.loadby sos mscorwks会报错, 如下:

"Unable to find module 'mscorwks'"

4. 使用下面的命令来加载sos

.load C:\Windows\Microsoft.NET\Framework\v1.1.4322\sos.dll

5. 成功. 运行!clrstack, !dumpstackobjects都没问题了.

注意, psscor2不能用来查看.net framework 1.1的dump文件. 只能用.net 1.1自带的sos.dll.

在加载了psscor2的时候, 使用!clrstack命令会遇到如下的错误

Doesn't work with 1.x
Failed to load data access DLL, 0x80004005
Verify that 1) you have a recent build of the debugger (6.2.14 or newer)
            2) the file mscordacwks.dll that matches your version of mscorwks.dll is 
                in the version directory
            3) or, if you are debugging a dump file, verify that the file 
                mscordacwks___.dll is on your symbol path.
            4) you are debugging on the same architecture as the dump file.
                For example, an IA64 dump file must be debugged on an IA64
                machine.

You can also run the debugger command .cordll to control the debugger's
load of mscordacwks.dll.  .cordll -ve -u -l will do a verbose reload.
If that succeeds, the SOS command should work on retry.

If you are debugging a minidump, you need to make sure that your executable
path is pointing to mscorwks.dll as well.

参考资料:

Back to Basics - How do I get the memory dumps in the first place? And what is SOS.dll?

http://blogs.msdn.com/b/tess/archive/2006/01/11/511773.aspx

"Failed to start stack walk: 80004005", "Following frames may be wrong" and other errors you may see in windbg

http://blogs.msdn.com/b/tess/archive/2008/05/13/failed-to-start-stack-walk-80004005-following-frames-may-be-wrong-and-other-errors-you-may-see-in-windbg.aspx

原文地址:https://www.cnblogs.com/awpatp/p/1844452.html