Azure 应用程序在使用Dependency Walker进行评测时不会崩溃

Azure 应用程序在使用Dependency Walker进行评测时不会崩溃,azure,dependency-walker,Azure,Dependency Walker,我有一个控制台应用程序在Azure云服务中运行,它随机崩溃,因此我开始使用dependency walker对其进行评测,看看是否可以获得更多信息 这是一个托管代码控制台应用程序,但它加载第三方非托管代码,这是崩溃的部分,它只是关闭控制台,没有任何信息说明原因 当我用dependency walker运行它时,我无法让它崩溃,在它作为dependency walker中的一个配置文件应用程序运行并只是运行它的上下文中,控制台应用程序有什么区别 使现代化 我可以在事件查看器中找到一些信息 Faul

我有一个控制台应用程序在Azure云服务中运行,它随机崩溃,因此我开始使用dependency walker对其进行评测,看看是否可以获得更多信息

这是一个托管代码控制台应用程序,但它加载第三方非托管代码,这是崩溃的部分,它只是关闭控制台,没有任何信息说明原因

当我用dependency walker运行它时,我无法让它崩溃,在它作为dependency walker中的一个配置文件应用程序运行并只是运行它的上下文中,控制台应用程序有什么区别

使现代化 我可以在事件查看器中找到一些信息

Faulting application name: runner.exe, version: 1.0.0.0, time stamp: 0x539fe538
Faulting module name: ntdll.dll, version: 6.3.9600.17114, time stamp: 0x53649e73
Exception code: 0xc0000374
Fault offset: 0x00000000000f87a8
Faulting process id: 0xdf8
Faulting application start time: 0x01cf8a16e42e087f
Faulting application path: D:\Users\pksorensen\Desktop\Release\runner.exe
Faulting module path: D:\Windows\SYSTEM32\ntdll.dll
Report Id: 3a46b49a-f60a-11e3-80bb-00155d871170
Faulting package full name: 
Faulting package-relative application ID: 

0xc000374错误代码意味着堆损坏,这是一个特别难以调试的问题。通常,当托管代码将对象或内存地址传递到非托管代码中时,或者托管代码未固定内存,或者非托管代码有一个错误,该错误覆盖了它不拥有的内存,就会导致这种情况。您应该检查所有托管到非托管转换的代码,并确保正确处理内存和对象引用。对于疑难解答,您可以从应用程序验证程序开始

如果这没有帮助,那么您需要启用Pageheap,然后附加一个调试器来查找第一次出现的异常。有几个博客可以帮助您完成这一步,但正如您所看到的,故障排除并不是一件小事