問題タブ [windows-error-reporting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - スタックに WerReportFault() があるミニダンプから情報を取得する
クラッシュ ダンプがWerpReportFault()
スタックにあり、期待どおりに見えません。
私の期待
WerpReportFault()
0x80000003 ブレークポイントと一緒に見た場合、 WinDbg を使用して、に渡された 2 番目の引数から取得したさまざまな例外ポインターで再ダンプできましたWerpReportFault()
。
あちらの回答でそれを推奨したので、以前はうまくいったと確信しています。この手法を提案している他のサイトもあります。たとえば、James Rossです。
私の現在の観察
私が分析しているダンプには、アクセス違反などの「通常の例外」が含まれています。
しかし、彼らはまだWerpReportFault()
スタックとして持っています:
.dump
引数 2 は、コマンドで使用するのに適した例外ポインターではないようです。
質問
私が抱えている問題の原因と、それを回避する方法は? !analyze -v
実際の呼び出しスタックを教えてくれるので、それが可能でなければならないことはわかっています。
Visual Basic 6 と未処理の例外フィルターが原因ですか?
すべての手動デバッグとすべてのスクリプトが壊れておりk
、 andなどに依存しているため、私は本当に素晴らしい呼び出しスタックを持ちたいと思ってい!clrstack
ます。WerpReportFault()
彼らはスタック上で対処できません。
VB6 の依存関係から想像できるように、すべてのダンプは 32 ビットです。
windows - システム全体ではなく、1 つのプロセスに対してのみ Windows エラー報告の LocalDumps を有効にする方法
Windowsのユーザー モード ダンプ コレクション機能は、十分に文書化されています。LocalDumps
キーが作成されている限りHKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting
、システムでアプリケーションがクラッシュするたびに、デフォルト設定を使用してコア ダンプが生成されます。関心のあるプロセスの実行可能ファイルにちなんで名付けられたその下のサブキーは、グローバル(デフォルト)設定をオーバーライドしており、名目上、指定した場所にフルメモリバープのクラッシュダンプを取得しています。
ただし、LocalDumps
サービスのサブキーのダンプをオーバーライドするように、システムにダンプを作成しないように指示する設定は、ドキュメントには明らかにありません。%LOCALAPPDATA%\CrashDumps
私たちの環境では、複数の ID で複数のサービス プロセスが実行されているため、多くのコア ダンプがすべての ID のディレクトリに不必要に散らばっています。これらは無人のサーバーであり、ゴミが増えるということは、より多くのスクリプト化されたクリーンアップを意味します。
すべてのプログラムに対してデフォルトでコア ダンプを無効にし、1 つのみの禁止を無効にする文書化された方法はありますか?
クラッシュしているプロセスの ID によって場所が書き込み可能でない場合、ダンプは作成されないことが文書化されていますが、LocalSystem サービスにもダンプは必要ありません。この男はどこにでも書き込むことができます。また、無効なファイルパスを指している場合、ダンプが作成されないようです。DumpFolder
少しハックしにくいようにするためNUL
に、デバイス名前空間のデバイスに設定しました(:
以下の「キーの下の値」を表します):
これは、Server 2012、2012R2、および 2016 で機能するようです。
windows - 未処理の例外が発生したときに「.mdmp」および「.hdmp」ファイルを作成しないようにする方法
C# コンソール アプリケーションは問題なく動作します。このアプリケーションは内部でいくつかの C++ dll を実行します。時折、アプリケーションを終了させる C5 エラー (基礎となる dll の不明な C++ エラー) または未処理の C# 例外が発生します。(Windowsイベントログで見ました)。
問題はエラーではなく、Windows の一時フォルダーに生成されるダンプ ファイルです。ディスク (仮想ディスクの容量が非常に少ない) がいっぱいになり、実行中の他のアプリケーションが失敗する結果になります。これらは、拡張子が「.mdmp」と「.hdmp」の 2 つのファイルです。約 500MB を占めます。これらは「Windowsエラー報告」に関連しているとインターネットで読みましたが、Windows設定(サーバーマネージャー->ローカルサーバー)で確認したところ、オフになっています。
また、C# コンソール アプリケーションのビルド設定を「内部コンパイラ エラー報告」から「送信」に変更しました。意図した場所にダンプファイルを送信し、後で保存しないことをホッピングしますが、一時ファイルはディスク上に生成されます。「なし」に変更する必要があると思います。
これらの一時ファイルの作成を停止する方法があれば、助けてください。
よろしくお願いします