私の理解では、Windows XP でタスク マネージャーを使用して C++ アプリケーションを強制終了すると、アプリケーションはまだ「きれいに」破棄されます。つまり、コール スタックが巻き戻され、関連するすべてのオブジェクト デストラクタが呼び出されます。ここで私の理解が間違っているかどうかはわかりません。
スタックを巻き戻さずに、そのようなアプリケーションをすぐに強制終了することは可能ですか?
たとえば、アプリケーションは、オブジェクトが破棄されたときにリソースを破棄または解放する RAII パターンを使用する場合があります。タスク マネージャによる従来の "kill プロセス" が適切である場合、アプリケーションをすぐに kill する方法を提供すると、不適切なシャットダウン (停電など) をテストできます。
編集:
明確にするために、私はこれを可能にする既存のユーティリティまたはプログラムを求めていました。ソースコードを持っていないプログラムでソリューションを使用できるはずです。つまり、プログラムによるソリューションは実際には受け入れられません。
編集:
より多くのコンテキストを提供するために、非常に煩わしいサードパーティのサービスを使用する必要がある場合があります(たとえば、1時間ごとに再起動するようにしつこく言われます)。再起動する必要がないことがわかっているので、プロセス/サービスを強制終了して、もうしつこくならないようにします。残念ながら、サードパーティの開発者の中には、私がこれを行うのを妨げるほど「賢い」人もいました。タスクマネージャーでプロセスを強制終了すると、システムはすぐに再起動します (これを実現するために RAII を使用していると思います)。