45

最近、アプリケーションを起動すると、Visual Studio 2005 の出力ウィンドウに次の行が表示されるようになりました:
FTH: (7156): *** フォールト トレラント ヒープ シムが現在のプロセスに適用されました。これは通常、以前のクラッシュが原因です。***

ここの手順を使用して、フォールト トレラント ヒープをオフにしようとしました:
http://msdn.microsoft.com/en-us/library/dd744764(VS.85).aspx

Windows 7 64 ビット版を実行しているので、32 ビットと 64 ビットの両方のレジストリに変更を加え、32 ビットと 64 ビットの両方を使用して「Rundll32.exe fthsvc.dll,FthSysprepSpecialize」コマンドを実行しました。 Rundll32.exe の 64 ビット バージョン。

ただし、再起動後も、アプリケーションをデバッグしようとすると、フォールト トレラント ヒープが発生します。

これは、私が再現しようとしているバグを覆い隠し、パフォーマンスも低下させるため、実際の問題です。

フォールト トレラント ヒープを無効にする方法について他に提案がある人はいますか?

4

10 に答える 10

45

単一のアプリケーションで無効にするには

Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers \ your_application.exeのHKEY_LOCAL_MACHINEおよびHKEY_CURRENT_USERバージョンに移動し、FaultTolerantHeapエントリを削除します。

ここから(実際にはここ

于 2012-01-25T21:31:05.327 に答える
7

このレジストリ値を次のように設定します0HKEY_LOCAL_MACHINE\Software\Microsoft\FTH\Enabled

于 2011-05-10T20:16:28.520 に答える
2

アプリケーション マニフェストを編集して、プログラムを PCA から除外できます

参照:プログラム互換性アシスタントをテスト用にリセットする方法

于 2011-02-16T23:47:20.447 に答える
1

「Rundll32.exe fthsvc.dll,FthSysprepSpecialize」は、現在フラグが設定されているアプリケーションのリストのみをクリアするように見えます。あなたのアプリケーションがまだ異常を引き起こしている場合でも、FTH が介入して引き継ぐ必要があります。

すでに述べたように:

このレジストリ値を 0 に設定します。HKEY_LOCAL_MACHINE\Software\Microsoft\FTH\Enabled

これにより、システム全体の FTH が無効になります。

于 2011-07-18T14:26:10.143 に答える
0

これにも出くわしました。Windows\AppPatch 内の AcXtrnal.dll の名前変更/削除は、私にとってはうまくいくようです。Microsoft が推奨するこのアクション (私が最初に実行したアクション) が何の役にも立たない点が気に入っています。

于 2011-07-13T02:03:42.163 に答える
0

このキーに関連付けられているレジストリ エントリには該当するデータが含まれていなかったため、ファイルの名前も変更する必要がありました。不正な動作をするアプリケーションがある場合、それらが入力されることを期待しています。しかし、私の場合は、Visual Studio 内で自分のアプリケーションをデバッグしていました。その場合、FTH サービスが実行されているかどうかに関係なく、何らかの方法で FTH をロードしていたのは私のプロセスでした。実際、以前に不正行為としてタグ付けされたアプリケーションはリストされていませんでした。

しかし、私はこれらの指示に従わなければなりませんでした:

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

所有権を取得して完全に制御できるようになるまで、ファイルの名前を変更できないためです。

于 2013-04-19T16:40:12.697 に答える
0

(Microsoft::VisualStudio::CppUnitTestFramework) を使用して単体テストを実行すると、同様の問題が発生しました。どういうわけかヒープ割り当てに違反しており、次にデバッグしようとすると、「現在のプロセスにフォールト トレラント ヒープ シムが適用されました。これは通常、以前のクラッシュが原因です。」というメッセージが表示され、デバッグ環境がフリーズしました。

再び機能させるには、テストケースを削除し、再コンパイルして追加し、再コンパイルする必要がありました。その後、ブレークポイントを設定してテストにステップインできました。

于 2018-08-24T08:40:39.207 に答える