Tag: dump

从C#引用64位dll时应用程序退出(无exception)

我编译了lzo2.dll 64位 ,现在希望在C#程序中使用它: 我正在使用以下类进行测试(类似的代码适用于32位lzo.dll): [DllImport(“lzo2.dll”)] private static extern string lzo_version_string(); static void Main(string[] args) { try { if (Environment.Is64BitProcess) { Console.WriteLine(lzo_version_string());//application exits here, no exceptions caught } } catch (Exception e) { Console.WriteLine(e); } Console.ReadLine(); } 在指示应用程序崩溃的时候,所以我拔出了windbg,这是输出:(抱歉冗长) 0:000> !analyze -v ******************************************************************************* * * * Exception Analysis * * * ******************************************************************************* *** WARNING: Unable to verify […]

SOS不支持当前的目标体系结构

我正在尝试使用windbg来研究在x64机器上为我们的x86进程创建的挂起转储文件。 这是一个4.0 x86的应用程序,所以只是为了获得一个非托管堆栈,我必须执行以下操作: .loadby sos clr .load wow64exts !sw kL 但是,每次我尝试通过!clrstack获取托管堆栈时,我都会在标题中看到错误。 我错过了什么?

当.NET不在垃圾收集(GC)中时,如何捕获.NET进程的进程内存转储

当捕获转储文件并对其进行分析时(例如在WinDbg中),我经常会收到警告:数据可能不准确,或者命令可能无法访问,因为当收集转储文件时,进程位于GC的中间。 在进行内存分析时,我们经常这样做,因为进程中的内存很高而内存压力很高,我猜这会强制.NET到GC。 如何在GC期间避免转储? 有没有办法知道何时可以安全地捕获转储文件?