ntdll.dll 中的应用程序崩溃,版本:6.1.7601.23677,.Net Framework 版本:v4.0.30319

问题描述 投票:0回答:1

更新 .Net 框架后,我的应用程序经常崩溃。以下是在事件查看器中找到的应用程序事件日志,

故障应用程序名称:MyApp.exe,版本:我的应用程序版本、时间 标记:0x5885f545 错误模块名称:ntdll.dll,版本: 6.1.7601.23677,时间戳:0x589c957a 异常代码:0xc015000f 故障偏移量:0x00084269 故障进程 ID:0x%9 故障 应用程序启动时间:0x%10 出现故障的应用程序路径:%11 出现故障 模块路径:%12 报告 ID:%13 错误包全名:%14 错误包相关应用程序 ID:%15

还在事件日志中发现以下错误,

应用程序:MyApp.exe.Net框架版本:v4.0.30319
描述:由于未处理的异常,进程被终止。 异常信息:异常代码c015000f,异常地址77994269

对我来说,ntdll.dll 和 .Net 版本之间似乎存在兼容性问题。 .Net 4.0.30319 是否需要安装任何 KB?

我正在分析故障转储,它显示在调用堆栈下方,

0 0042eb84 7566171a ntdll!NtWaitForMultipleObjects+0x15
01 0042ec20 75551a08 KERNELBASE!WaitForMultipleObjectsEx+0x100
02 0042ec68 75554200 kernel32!WaitForMultipleObjectsExImplementation+0xe0
03 0042ec84 755780ec kernel32!WaitForMultipleObjects+0x18
04 0042ecf0 75577fab kernel32!WerpReportFaultInternal+0x186
05 0042ed04 755778a0 kernel32!WerpReportFault+0x70
06 0042ed14 7557781f kernel32!BasepReportFault+0x20
07 0042eda0 77395b67 kernel32!UnhandledExceptionFilter+0x1af
08 0042eda8 77395a44 ntdll!__RtlUserThreadStart+0x62
09 0042edbc 773958d1 ntdll!_EH4_CallFilterFunc+0x12
0a 0042ede4 773834c9 ntdll!_except_handler4+0x8e
0b 0042ee08 7738349b ntdll!ExecuteHandler2+0x26
0c 0042ee2c 7738343c ntdll!ExecuteHandler+0x24
0d 0042eeb8 77330143 ntdll!RtlDispatchException+0x127
0e 0042eeb8 773a41c9 ntdll!KiUserExceptionDispatcher+0xf
0f 0042f3e0 7555544c ntdll!RtlDeactivateActivationContext+0x154
10 0042f3f0 055e70ce kernel32!DeactivateActCtx+0x31
11 0042f434 013e1fd1 mydll!Mydll::Function+0x8e 

问题出在 Windows 2008 上。在其中一台具有相同 .Net 版本和 ntdll.dll 版本 6.1.7601.17514 的机器中,应用程序运行正常。

但只有 ntdll.dll 版本6.1.7601.23677应用程序才会崩溃。

c# .net-4.5 ntdll
1个回答
0
投票

我在从非托管 cpp 应用程序加载托管 .NET dll 时遇到了类似的问题。

我发现 .NET 异常即使被捕获,也可能导致应用程序崩溃。似乎是在启用 /CETCOMPAT(CET Shadow Stack 兼容) 标志的情况下构建主机应用程序导致了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.