编写的32位托管程序在64位操作系统上运行,程序崩溃后,抓取了dump,希望用windbg来分析崩溃原因。正常情况下,32位程序崩溃后,需要用32位的程序来抓取dump,windbg和DebugDiag才能分析,若用任务管理器来抓取,需要用C:\Windows\SysWOW64\Taskmgr.exe来抓取。
但是若已经抓取了64位的dump,还是有方法来分析,需要加载soswow64.dll,这个dll源码在soswow64,需要用VS2015进行编译。按照README中的说明,最好将soswow64.dll复制到windbg的winxp目录下,这样就可以直接使用.load soswow64来加载,而不用带上路径。
用windbg打开dump后,依次执行以下命令:.loadby sos clr\!wow64exts.sw\.load soswow64即可。更详细的说明,可去Gibhub的源码目录查看。
我将已经编译好的soswow64.dll上传了,方便各位网友下载:soswow64.dll