【发布时间】:2018-07-23 20:02:07
【问题描述】:
我正在运行 Visual Studio 2015,之前从未遇到过调试问题。但是,最近调试很慢。我还开始收到来自 Microsoft Visual C++ 运行时库的堆调试错误,说“检测到堆损坏”。我将修复应用程序在堆缓冲区结束后写入内存的错误,但即使我没有运行引发这些错误的代码,调试器也非常慢。我认为有一些堆检查设置打开,我想将其关闭。
调试输出窗口顶部有两行,每行都写着Page heap: pid 0x530: page heap enabled with flags 0x2. 我相信这是问题的根源,或者至少是相关的。我无法关闭页堆。我在 gflags GUI 中尝试过(没有检查任何内容,但我尝试检查和取消检查),并在命令行上尝试过。重新启动VS,重新启动我的电脑,卸载并重新安装VS......没有任何效果。
当我在 VS 中运行发布配置时,它仍然很慢,并且我仍然在输出窗口顶部看到页面堆消息。但是,应用程序并没有收到堆调试错误消息,而是冻结了。但是页面堆消息让我认为这是 VS 之外的问题,与我的调试配置无关。
编辑:我正在使用 wxWidgets 3.1,我注意到我的程序在 wxWidgets 相关事件期间运行最慢,例如打开文件或将多行输出到 textCtrl。不确定这是否相关。
【问题讨论】:
-
“我正在运行 Visual Studio 2015” - 考虑升级到最新的 2017。
-
慢有多慢?页面堆不应该那么慢。也许您只是内存不足?
-
@VTT 速度太慢,在与另一个应用程序通信时会导致计时问题。
-
“页堆:pid 0x530:页堆启用,标志为 0x2”。是的,你不想要那个。您运行 gflags.exe 将其打开,有时对查找堆损坏错误很有用。只是有时,appverifier 是更好的工具。但是你忘了关掉它,再运行一次。
-
我试图将其关闭,请参阅原帖。
标签: c++ visual-studio-2015 wxwidgets pageheap