Как отключить отказоустойчивую кучу? - PullRequest
34 голосов
/ 16 февраля 2011

Я недавно начал видеть эту строку в окне вывода Visual Studio 2005 при запуске моего приложения:
FTH: (7156): *** Отказоустойчивая прокладка кучи, примененная к текущему процессу. Обычно это происходит из-за предыдущих сбоев. ***

Я попытался отключить отказоустойчивую кучу, используя инструкции здесь:
http://msdn.microsoft.com/en-us/library/dd744764(VS.85).aspx

Я использую 64-разрядную версию Windows 7, поэтому я внес изменения в 32-разрядную и 64-разрядную реестры и запустил команду "Rundll32.exe fthsvc.dll, FthSysprepSpecialize", используя оба параметра и 64-битные версии Rundll32.exe.

Однако после перезагрузки я все равно получаю отказоустойчивую кучу при попытке отладки моего приложения!

Это реальная проблема, поскольку она маскирует ошибку, которую я пытаюсь воспроизвести, а также снижает производительность.

У кого-нибудь есть другие предложения, как отключить отказоустойчивую кучу?

Ответы [ 9 ]

37 голосов
/ 26 января 2012

Чтобы отключить его для одного приложения

Перейти к версиям HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers \ your_application.exe и удалите запись FaultTolerantHeap.

С здесь (на самом деле здесь )

5 голосов
/ 11 мая 2011

Установите это значение реестра на 0: HKEY_LOCAL_MACHINE\Software\Microsoft\FTH\Enabled

4 голосов
/ 27 августа 2012

Вы можете добавить имя вашего исполняемого файла в список исключений.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\ExclusionList

У меня работает.

2 голосов
/ 17 февраля 2011
1 голос
/ 18 июля 2011

"Rundll32.exe fthsvc.dll, FthSysprepSpecialize" выглядит только для очистки списка отмеченных в данный момент приложений. если ваше приложение по-прежнему вызывает странности, FTH все равно должен вмешаться и принять управление.

как уже упоминалось:

Установите это значение реестра в 0: HKEY_LOCAL_MACHINE\Software\Microsoft\FTH\Enabled

это должно отключить FTH для всей системы.

0 голосов
/ 05 февраля 2019

вы можете очистить список приложений, отслеживаемых FTH, не останавливая эту службу, выполнив следующие действия:

  1. Откройте меню Пуск.
  2. Щелкните правой кнопкой мыши Компьютер и выберите Управление.
  3. Щелкните Просмотр событий -> Журналы приложений и служб -> Microsoft -> Windows -> Fault-Tolerant-Heap.
  4. Просмотр событий FTH.

вынайдите файл с рабочим именем правой кнопкой мыши и выберите очистить журнал, после чего вы сможете снова запустить программу и предупреждающее сообщение исчезнет, ​​оно сработало без перезагрузки операционной системы.

0 голосов
/ 24 августа 2018

У меня была похожая проблема при запуске модульного теста с использованием (Microsoft :: VisualStudio :: CppUnitTestFramework).Каким-то образом я нарушил некоторое выделение кучи, и в следующий раз, когда я попытался отладить, я получил сообщение: «Отказоустойчивая прокладка кучи применена к текущему процессу. Обычно это происходит из-за предыдущих сбоев». Среда отладки заморозилась.

Чтобы заставить его работать снова, мне пришлось удалить тестовый пример, перекомпилировать и добавить его снова и перекомпилировать, затем я мог установить точку останова и перейти к тесту.

0 голосов
/ 19 апреля 2013

Мне также пришлось переименовать файл, потому что записи реестра, связанные с этим ключом, были пусты из соответствующих данных. Я ожидаю, что они заполняют, если у вас есть неправильное приложение. Но в моем случае я отлаживал свое собственное приложение в Visual Studio. Так что в этом случае именно мой процесс каким-то образом загружал FTH, независимо от того, работала служба FTH или нет. И на самом деле у меня не было приложений, которые ранее были помечены как неправильные.

Но я должен был следовать этим инструкциям:

http://billroper.livejournal.com/960825.html

потому что он не позволил бы мне переименовать файл, пока я не стану владельцем и не буду иметь полный контроль.

0 голосов
/ 13 июля 2011

Тоже столкнулся с этим.Переименование / удаление AcXtrnal.dll в Windows \ AppPatch, кажется, работает для меня.Мне нравится, как это рекомендуемое Microsoft действие (которое я сделал первым) ничего не делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...