Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从AccessViolationException检索注册表上下文?_C#_C++_Windbg_Crash Dumps - Fatal编程技术网

C# 如何从AccessViolationException检索注册表上下文?

C# 如何从AccessViolationException检索注册表上下文?,c#,c++,windbg,crash-dumps,C#,C++,Windbg,Crash Dumps,我有一个托管(C#)应用程序的x64崩溃转储,由p/调用本机代码。在本机代码尝试取消对坏内存位置的引用,以及.NET封送处理程序将其转换为AccessViolationException后,执行转储。因此,发生错误的堆栈帧不再可用,发生异常的线程现在被CLR异常处理程序劫持: 0:017>kb #重新寻址:Args到子:调用站点 00 000007fe`fd3b10dc:00000000`0402958b 00000000`2000002 00000000`00000e54 00000000`0

我有一个托管(C#)应用程序的x64崩溃转储,由p/调用本机代码。在本机代码尝试取消对坏内存位置的引用,以及.NET封送处理程序将其转换为
AccessViolationException
后,执行转储。因此,发生错误的堆栈帧不再可用,发生异常的线程现在被CLR异常处理程序劫持:

0:017>kb
#重新寻址:Args到子:调用站点
00 000007fe`fd3b10dc:00000000`0402958b 00000000`2000002 00000000`00000e54 00000000`00000e4c:ntdll!NtWaitForSingleObject+0xa
01 000007fe`ea9291eb:00000000`00000000`00000cdc 00000000`00000000`00000000`00000cdc:KERNELBASE!WaitForSingleObjectEx+0x79
02 000007fe`ea929197:00000000`00000000`00000000`00000000`00000000`00000000`00000000:clr!CLREventWaitHelper2+0x38
03 000007fe`ea929120:00000000`00000000`00000000`00000000`00000000`00000000`00000000:clr!CLREventWaitHelper+0x1f
04 000007fe`ead8cae5:00000000`29CBC7C000000000`3213ce40 00000000`00000000 00000000`ffffffff:clr!CLREventBase::WaitEx+0x70
05 000007fe`ead8c9d0:00000000`29CBC7C000000000`00000000`0002b228 00000000`0002b228:clr!线程::WaitSuspendEventHelper+0xf5
06 000007fe`eacf2145:00000000`007ea060 000007fe`ea924676 00000000`00000000 000007fe`fd3b18da:clr!线程::WaitSuspendEvents+0x11
07 000007fe`EACC00C:00000000`00000000`00000000`00000000`00000000`00000000`00000000:clr!线程::RareEnablePreemptiveGC+0x33a905
08 000007fe`eae2c762:00000000`00000000`007cbce0 00000000`29CBC7C000000000`00000001:clr!线程::RareDisablePreemptiveGC+0x31b40c
09 000007fe`eaf662d4:00000000`00000000`007cbce0 00000000`29CBC7C000000000`00000000:clr!EEDbgInterfaceImpl::DisablePreemptiveGC+0x22
0a 000007fe`eaf66103:00000000`29cb0100 00000000`00000000 00000000`3213cf80 00000000`29cbca20:clr!调试器::SendExceptionHelperAndBlock+0x174
0b 000007fe`eaf65d0d:ffffffff`FFFFFF00000000`29cbca20 00000000`29cbc700 000007fe`eaf62100:clr!调试器::SendExceptionEventsWorker+0x343
0c 000007fe`eaf61bd8:00000000`00000100 00000000`00000000`00000019 00000000`3213dd01:clr!调试器::SendException+0x15d
0d 000007fe`eadac75d:00000000`007cbce0 00000000`3213d258 00000000`3213d1e8 00000000`00000001:clr!调试器::LastChanceManagedException+0x1f8
0e 000007fe`eaf698c7:000075ce`2b30e018 00000000`00000000 00000000`00000001 00000000`00000000:clr!NotifyDebuggerLastChance+0x6d
0f 000007fe`eaf6af20:00000000`00000000`000007fe`8cf40020 000007fe`8cfa200c 4328fffe`43e0fffe:clr!调试器::未处理的jackworker+0x1a7
1000007FE`eaaacbf0:00000000`0000000 A 00000000`2ab23e30 00000000`00000001 00000000`00000000:clr!异常劫持工人+0xc0
11 00000000`3213d8c0:00000000`3213ddb0 00000000`00000001 00000000`00000000`00000000`00000000:clr!例外劫持+0x30
12 00000000`3213ddb0:00000000`00000001 00000000`00000000`00000000`00000000B 00000000`0035578c:0x3213d8c0
13 00000000`00000001:00000000`00000000`00000000`00000000B 00000000`0035578c FFFFFF`00000002:0x3213ddb0
14 00000000`00000000:00000000`00000000B 00000000`0035578c FFFFFF`00000002000000000`00350268:0x1
.exr-1
(显示最近的异常)返回:

0:017>.exr-1
例外地址:00000000 771D685A(user32!ZwUserMessageCall+0x000000000000000a)
例外代码:80000004(单步例外)
例外标志:00000000
数字参数:0
调用
user32!ZwUserMessageCall
位于线程0堆栈的顶部,而不是发生本机异常的17,因此我只能假设它没有指向我的异常

我可以转储访问冲突异常以获取有关本机错误的一些信息:

0:017>!DumpObj/d 00000000 12175640
名称:System.AccessViolationException
方法表:000007fee9a61fe8
EEClass:000007英尺9528300
大小:176(0xb0)字节
文件:C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0.0.0\uu_b77a5c561934e089\mscorlib.dll
领域:
MT字段偏移类型VT属性值名称
000007fee9a50e08 4000002 8系统。字符串0实例00000000 1217B538_类名称
000007fee9a5b218 4000003 10…section.MethodBase 0实例0000000000000000\u例外方法
000007fee9a50e08 4000004 18系统。字符串0实例0000000000000000\u异常方法字符串
000007fee9a50e08 4000005 20系统。字符串0实例00000000 12179818_消息
000007fee9a61f18 4000006 28…tions.IDictionary 0实例0000000000000000\u数据
000007fee9a51038 4000007 30系统。异常0实例000000000000\u内部异常
000007fee9a50e08 4000008 38系统。字符串0实例0000000000000000\u帮助URL
000007fee9a513e8 4000009 40系统。对象0实例00000000 12179AD0\u stackTrace
000007fee9a513e8 400000a 48系统。对象0实例00000000 12179C68
000007fee9a50e08 400000b 50系统。字符串0实例0000000000000000\u堆栈跟踪字符串
000007fee9a50e08 400000c 58系统。字符串0实例0000000000000000\u remoteStackTraceString
000007fee9a53980 400000d 88 System.Int32 1实例0\u remoteStackIndex
000007fee9a513e8 400000e 60系统。对象0实例0000000000000000\u动态方法
000007fee9a53980 400000f 8c System.Int32 1实例-2147467261\u HResult
000007fee9a50e08 4000010 68系统。字符串0实例0000000000000000\u源
000007fee9a54a00 4000011 78 System.IntPtr 1实例0\u xptrs
000007fee9a53980 4000012 90 System.Int32 1实例-532462766_xcode
00