我正在使用WaitForDebugEvent() API来处理debugging事件,同时debugging第三方应用程序。 我经常遇到由CLR抛出的访问冲突(恶意使用一些.NET库)。 我后来看到,当我分析与WinDbg迷你转储。 当WaitForDebugEvent()返回时,我可以立即检测到来自CLR的exception吗?
以下是捕获exception的细节:
EXCEPTION_RECORD: (.exr -1) ExceptionAddress: 000007fef7e870eb (clr!EEFileLoadException::Throw+0x00000000000001ac) ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 0000000000000000 Parameter[1]: 000000000000007d Attempt to read from address 000000000000007d
Windows服务挂起在启动过程中启动
LNK2022元数据操作:重复types中的布局信息不一致
构造函数/析构函数链接错误
.NET CLR性能计数器丢失
CLR如何实现COM实现的二进制互操作级别? 还是不?
.Net 4.0 Windows应用程序在Windows Server 2008下的clr.dll中崩溃
0xc000007b错误 – 但所有DLL都是32位
了解.NET应用程序内存大小
你如何保护自己免受内存消耗失控打破个人电脑?
CLR之间的区别
所有来自CLR的异常都有ExceptionCode,格式为0xE0 ******,NumberParameters> 3.最常见的是我看到的 – e0434352(0xe0000000 +'CCR') – 例如: – 这个 : –
未知的异常 – 代码e0434352(一次机会)是一个很大的线索。 如果你看看这个错误,你可能会看到一些十分熟悉的“0x43”,“0x43”,“0x52”或“C”“C”R“的十六进制。 不,这不是对Creedence的敬意,也不意味着有一个不好的月亮上升。 这告诉我错误是从CLR运行时抛出的。 甜。 事情变得更简单了。
另一个公共代码 – 0xE0434F4D(0xe0000000 +'COM') – CLR如何将SEH异常映射到托管的异常类型
编辑:
CLR抛出的访问冲突
你的意思是直接的STATUS_ACCESS_VIOLATION异常? 在这种情况下没有办法检测,但我从来没有在CLR直接看到这一点。 或者当CLR抛出RaiseException和ExceptionInformation [0] – > STATUS_ACCESS_VIOLATION?