Windows 7 如何关闭容错堆?
我最近在启动我的应用程序时,在Visual Studio 2005输出窗口中看到了这一行:Windows 7 如何关闭容错堆?,windows-7,heap,fault-tolerant-heap,Windows 7,Heap,Fault Tolerant Heap,我最近在启动我的应用程序时,在Visual Studio 2005输出窗口中看到了这一行: FTH:(7156):***应用于当前进程的容错堆垫片。这通常是由于以前的崩溃*** 我已尝试使用以下说明关闭容错堆: 我正在运行Windows 7 64位版本,因此我对32位和64位注册表进行了更改,并使用32位和64位版本的Rundll32.exe fthsvc.dll,fthsysprepespecialize运行“Rundll32.exe fthsvc.dll,fthsysprepespecia
FTH:(7156):***应用于当前进程的容错堆垫片。这通常是由于以前的崩溃*** 我已尝试使用以下说明关闭容错堆:
我正在运行Windows 7 64位版本,因此我对32位和64位注册表进行了更改,并使用32位和64位版本的Rundll32.exe fthsvc.dll,fthsysprepespecialize运行“Rundll32.exe fthsvc.dll,fthsysprepespecialize”命令 但是,重新启动后,在调试应用程序时,我仍然会得到容错堆 这是一个真正的问题,因为它掩盖了我试图复制的bug,而且还会降低性能 是否有人对如何禁用容错堆有任何其他建议?您可以编辑到
另请参见:将此注册表值设置为
0
:
HKEY\u LOCAL\u MACHINE\Software\Microsoft\FTH\Enabled
也遇到了这个问题。在Windows\AppPatch中重命名/删除AcXtrnal.dll似乎对我有用。我喜欢微软推荐的这个操作(我先做的)什么都不做。“Rundll32.exe fthsvc.dll,fthsysprepespecialate”看起来只清除当前标记的应用程序列表。如果您的应用程序仍然导致异常,FTH仍应介入并接管
如前所述:
将此注册表值设置为0:
HKEY\U LOCAL\U MACHINE\Software\Microsoft\FTH\Enabled
这将为整个系统禁用FTH。为单个应用程序禁用FTH 转到HKEY_本地_计算机和HKEY_当前_用户版本 软件\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\your\u application.exe和 删除容错堆条目
从(实际上)可以将可执行文件的名称添加到排除列表中
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\ExclusionList
对我有效。我还必须重命名该文件,因为与此项关联的注册表项中没有适用的数据。如果您有一个行为不端的应用程序,我希望它们会填充。但在我的例子中,我在VisualStudio中调试自己的应用程序。因此,在这种情况下,无论FTH服务是否运行,都是我的进程以某种方式加载FTH。事实上,我没有列出以前被标记为行为不端的应用程序 但我必须遵循这些指示:
因为在我取得所有权并确保完全控制之前,它不允许我重命名该文件。在使用(Microsoft::VisualStudio::CppUnitTestFramework)运行单元测试时,我遇到了类似的问题。 不知何故,我违反了一些堆分配,下一次尝试调试时,我收到消息:“容错堆垫片应用于当前进程。这通常是由于以前的崩溃。”调试环境冻结
为了让它再次工作,我必须删除测试用例,重新编译并再次添加它,然后重新编译,然后我可以设置断点并进入测试。您可以通过以下步骤清除FTH跟踪的应用程序列表,而无需停止此服务:
它在不重启操作系统的情况下与我一起工作 在Windows 10上,注册表位置为:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH
您可以从以下列表中删除可执行文件:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State
也可以从提升的命令提示符运行此命令
Rundll32.exe fthsvc.dll,FthSysprepSpecialize
您可能需要重新启动计算机非常感谢您的回答。不幸的是,按照您的建议修改应用程序清单和重置PCA没有任何区别。这个解决方案对我不起作用。是否添加了可执行文件的整个路径?或者仅仅是可执行文件名?@AngieQuijano在一开始它对我也不起作用,但是当我删除并重新编译我的exe文件时它起作用了(只是重新编译它不起作用,我必须删除它)。@DonaldDuck删除exe对我不起作用(Windows 10)。我不得不重新命名它。这个解决方案对我有效,但我只需要删除HKEY_LOCAL_机器的FTH。这只会在启用后关闭它。这并不能阻止它再次被启用,这才是真正需要的…我必须删除并重新编译我的exe文件才能使其工作。@DonaldDuck删除exe对我不起作用(Windows 10)。我不得不重新命名它。