如何关闭容错堆?

MJW*_*MJW 35 heap fault-tolerant-heap windows-7

我最近在启动应用程序时在Visual Studio 2005输出窗口中看到了这一行:
FTH:(7156):***应用于当前进程的容错堆填充程序.这通常是由于以前的崩溃造成的.***

我尝试使用以下说明关闭容错堆:http:
//msdn.microsoft.com/en-us/library/dd744764(VS.85).aspx

我正在运行Windows 7 64位版本,因此我对32位和64位注册表进行了更改,并使用32位和32位运行"Rundll32.exe fthsvc.dll,FthSysprepSpecialize"命令. 64位版本的Rundll32.exe.

但是,重新启动后,我仍然在尝试调试应用程序时获得容错堆!

这是一个真正的问题,因为它掩盖了我试图重现的错误,并且它也会杀死性能.

有没有人有任何其他建议如何禁用容错堆?

Lar*_*ens 40

为单个应用程序禁用它

转到Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\your_application.exe的HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER版本,并删除FaultTolerantHeap条目.

这里(实际上在这里)

  • 这个解决方案对我有用,但我只需要删除HKEY_LOCAL_MACHINE的FTH. (3认同)

Aar*_*otz 5

将此注册表值设置为0: HKEY_LOCAL_MACHINE\Software\Microsoft\FTH\Enabled


小智 5

您可以将可执行文件的名称添加到 ExclusionList。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\ExclusionList
Run Code Online (Sandbox Code Playgroud)

为我工作。