我试图追踪当我强调我的 C# 代码并在低内存条件下运行时发生的崩溃。但是,在某些情况下,我的程序不会得到 OutOfMemoryException,而是会简单地崩溃并退出。这通常是由于缓冲区溢出或堆栈溢出(或损坏)造成的内存损坏。
那么,有没有办法检查堆的完整性,或者有没有办法检查线程上剩下多少堆栈?
出于速度原因,我使用了很多不安全的代码,所以很可能我的代码在某处损坏了内存。不幸的是,崩溃发生在损坏发生后的随机间隔。我知道 C# 在检测到缓冲区溢出时会关闭应用程序,但是有没有办法强制它进行检查?
谢谢。