查找堆损坏

2023-12-22

这是我之前问题的延伸,应用程序崩溃且没有任何解释 https://stackoverflow.com/questions/5224154/application-crash-with-no-explanation/.

我遇到过很多崩溃,可能是由应用程序服务器上的堆损坏引起的。这些崩溃仅发生在生产中;它们无法在测试环境中重现。

我正在寻找一种方法来追踪这些崩溃。

建议使用应用程序验证器,它会很好,但它在我们的生产服务器上无法使用。当我们尝试使用应用程序验证程序在生产环境中启动它时,它变得非常慢,以至于完全无法使用,即使这是一个相当强大的服务器(64 位应用程序、16 GB 内存、8 个处理器)。在没有应用程序验证程序的情况下运行它,它仅使用大约 1 GB 内存,并且不超过任何处理器周期的 10-15%。

是否有其他工具可以帮助发现堆损坏,而不增加巨大的开销?


使用 Microsoft 运行时库的调试版本。打开红色分区并通过调用每 128 次(例如)堆操作自动检查您的堆_CrtSetDbgFlag()初始化期间一次。

_CRTDBG_DELAY_FREE_MEM_DF对于查找释放后内存使用的错误非常有用,但是堆大小在使用它时会连续增长。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找堆损坏 的相关文章

随机推荐