Comment puis-je désactiver le tas de défauts tolérant?
j'ai récemment commencé à voir cette ligne dans ma fenêtre de sortie Visual Studio 2005 lors du lancement de mon application:
CINQUIÈME: (7156): *** tolérance de Pannes tas de cale appliquée à des processus en cours. C'est généralement dues à des accidents. ***
j'ai essayé d'éteindre le tas de défauts tolérant en utilisant les instructions here:
http://msdn.microsoft.com/en-us/library/dd744764(VS.85).aspx
J'exécute Windows 7 64-bit édition, donc j'ai fait les changements à la fois dans les registres 32 bits et 64 bits, et j'ai lancé le "Rundll32.exe fthsvc.dll, fthsysprepspecialize " commande utilisant à la fois les versions 32 bits et 64 bits de Rundll32.EXE.
cependant, après avoir redémarré, j'obtiens toujours le tas de tolérance de faute quand j'essaie de déboguer mon application!
C'est un vrai problème car il masque le bug que j'essaie de reproduire, et il tue aussi la performance.
quelqu'un a une autre suggestions comment désactiver le tas tolérant les défauts?
8 réponses
désactiver pour une application unique
allez aux versions HKEY_LOCAL_MACHINE et HKEY_CURRENT_USER de Logiciels \ Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\your_application.exe et supprimer L'entrée Faultolerantheap.
Définissez cette valeur de registre 0
:
HKEY_LOCAL_MACHINE\Software\Microsoft\FTH\Enabled
Vous pouvez ajouter le nom de votre exécutable à la liste d'exclusion.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\ExclusionList
Fonctionne pour moi.
vous pouvez éditer le manifeste d'applicationà l'exception de votre programme de PCA
voir aussi:comment réinitialiser Assistant de compatibilité de programme pour tester
" Rundll32.exe fthsvc.dll, FthSysprepSpecialize" semble seulement effacer la liste des applications actuellement marquées. si votre application cause encore des bizarreries, la FTH devrait quand même intervenir et prendre le relais.
comme déjà mentionné:
définissez cette valeur de Registre à 0: HKEY_LOCAL_MACHINE\Software\Microsoft\FTH\Enabled
ceci devrait désactiver FTH pour l'ensemble du système.
j'ai aussi rencontré ça. Renommer / supprimer AcXtrnal.dll à L'intérieur de Windows\AppPatch semble fonctionner pour moi. J'aime la façon dont cette action recommandée par Microsoft (ce que J'ai fait en premier) ne fait rien.
j'ai dû renommer le fichier aussi parce que les entrées de Registre associées à cette clé étaient vides de données applicables. Je m'attends à ce qu'ils peuplent si vous avez une mauvaise application. Mais dans mon cas, je déboguais ma propre application au sein de Visual Studio. Donc dans ce cas, c'est mon processus qui était en quelque sorte en train de charger le FTH, que le Service FTH soit en cours ou non. Et en fait, je n'avais aucune liste d'applications qui étaient précédemment étiquetées comme mauvaises.
Mais j'ai dû suivez ces instructions:
http://billroper.livejournal.com/960825.html
parce qu'il ne me permettait pas de renommer le fichier jusqu'à ce que je prenne la propriété et m'assure d'avoir le contrôle total.
j'ai eu un problème similaire lors de l'exécution d'un test unitaire en utilisant (Microsoft::VisualStudio::Cppunittestfram Framework). D'une façon ou d'une autre j'avais violé une certaine allocation de tas, et la prochaine fois que j'ai essayé de déboguer j'ai reçu le message : "tolérance de faute tas shim appliqué au processus actuel. C'est généralement dues à des accidents. "et l'environnement de débogage gelé.
pour le faire fonctionner à nouveau, j'ai dû supprimer le cas de test, recompiler et l'ajouter à nouveau et recompiler, puis je pouvais définir le point de rupture et entrer dans le test.