空堆栈跟踪.可能

本文关键字:可能 跟踪 堆栈 | 更新日期: 2023-09-27 18:33:40

是否有任何可能的情况,堆栈跟踪可以完全为空?我收到了从计算机事件属性复制的事件日志文本,其中显示以下内容:

说明:发生未处理的异常,进程已终止。

应用程序 ID:默认域

进程 ID:123

异常

:系统内存不足异常

消息:引发类型为"System.OutOfMemoryException"的异常。

堆栈跟踪

有关详细信息,请参阅 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

堆栈跟踪对我来说看起来很可疑。我在论坛和文档中搜索了很多 - 堆栈跟踪是空的。只有 MSDN 提到">由于优化期间发生的代码转换(如内联(,StackTrace 属性可能不会报告预期的数量的方法调用">,但根本没有方法调用报告。

在我联系回来确认之前,我需要确定,因为这是一个多层通信,需要时间来回复。

对我的怀疑堆栈跟踪不能为空的任何更正?

空堆栈跟踪.可能

有时,调用堆栈本身可能是导致 OOM(调用堆栈中太多(的原因。

所以......你看到了问题所在。

或者

堆可能已耗尽,或者...或者,请参阅@Oded评论!

若要在事件日志中创建消息,必须检索字符串属性Exception.StackTrace。计算此属性的值涉及创建新的StackTrace对象。如果应用程序内存不足,则可能无法执行此操作,因为分配失败。这可以解释为什么缺少堆栈跟踪。

当应用程序内存不足时,甚至日志记录等错误处理也可能由于资源不足而失败。在您的情况下,您至少知道触发故障的是内存不足情况。