Jus*_*ony 23 c# windbg dump .net-4.0 hang
我正在尝试使用windbg来研究在x64机器上为我们的x86进程创建的挂起转储文件.这是一个4.0 x86的应用程序,所以为了获得一个非托管堆栈,我必须执行以下操作:
.loadby sos clr
.load wow64exts
!sw
kL
Run Code Online (Sandbox Code Playgroud)
但是,每当我尝试通过!clrstack标题获取托管堆栈时,我都会收到错误.我错过了什么?
try*_*dis 26
我相信你将不得不使用位于C:\ Windows\SysWOW64\taskmgr.exe的32位任务管理器来获得32位转储.
更多信息:http://blogs.msdn.com/b/tess/archive/2010/09/29/capturing-memory-dumps-for-32-bit-processes-on-an-x64-machine.aspx
我总是遵循比特匹配的建议,但直到我看到这篇文章时才知道原因:http://blogs.msdn.com/b/dotnet/archive/2013/05/01/net-crash-dump -and-live-process-inspection.aspx指出:
"DAC具有标准化接口,调试器使用它来获取有关这些抽象状态的信息,例如托管堆.必须使用与CLR版本匹配的DAC以及进程或崩溃的体系结构转储你要检查."
和
"请注意,DAC是本机DLL,必须加载到使用ClrMD的程序中.如果转储或实时进程是32位,则必须使用32位版本的DAC,这反过来意味着您的检查程序也需要32位.对于64位进程也是如此.确保程序的平台与您正在调试的程序相匹配."
| 归档时间: |
|
| 查看次数: |
11526 次 |
| 最近记录: |