開発用 PC でアプリが長いループまたは無限ループに入ると、VS デバッガーで中断し、アプリが何をしているかを教えてくれます。デバッグを支援するために、ユーザーの PC でも簡単な方法でそれを行いたいと考えています。
私は次のようなことを考えていました:
- アプリで、ある種のプロセス間パイプを待機する別のスレッドを実行し、そこから何かを受信すると、メイン スレッドの現在のスタック トレースをログに記録します。(Thread.GetCompressedStack() を使用していますか?)
break.exe
たとえば、実行時に他のプロセスに接続し、パイプに何かを書き込むヘルパー exe を送信します。
その後、ユーザーがアプリのフリーズを報告した場合、break.exe を実行してみるように伝えます。
これは良いアプローチですか?