問題タブ [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.
winapi - WERダイアログを表示せずにWindows-7でプロセスをクラッシュさせる方法は?
Windows エラー報告 (WER) ダイアログを表示せずに、Windows-7 で通常のユーザー モード プロセスをクラッシュさせることはできますか? (WER が通常有効で、特定のフラグが適用されていない場合。)
注: WER を無効にすることには興味がありません。WER が起動されるべきなのに起動されず、Windows がアプリを "サイレントに" 終了するというクラッシュ シナリオに興味があります。
Windows XP では、アクセス違反 (またはその他の未処理の Win32 例外) が最終的に発生したときに Windows XP がユーザーにまったく通知せずに、プロセスを黙って終了します。
単純な C++ プロジェクトで上記の関数を呼び出すと (リリース モードで -- テスト時にコンパイラの最適化に注意してください -- デバッガの下で実行しないでください)、次のようになります。
- XP では、プロセスをサイレントに終了します。
- Windows-7 で WER クラッシュ ダイアログを表示します。
- 余談ですが、どのような状況でも、独自の未処理の例外フィルターを呼び出すことはありません。
SetUnhandledExceptionFilter
私が今疑問に思っているのは、Windows 7 では、アプリケーションのクラッシュ[a]に対して常にエラー ダイアログが表示されるように WER メカニズムが実装されているのか、それとも Windows 7 でもプロセス破損のシナリオが存在するのかということです。 WERダイアログがポップアップしないようにしますか?
私が行った読み上げを少し追加します。
本のWindows via C/C++ (Richter、Nasarre による第 5 版)では、「フォールティング プロセス」(p 711) で何が起こるかを説明しています。
- 例外フィルター。
- ...
- ...
- カーネルが未処理の例外を検出
- Wer サービスへの ALPC 呼び出しのブロック
- WER レポートが開始されます。
- ...
ここで彼らは、Win7 が Windows XP とは異なる方法でこれを行うことを指摘しています (この本の p. 710 を引用すると:)
... Windows Vista 以降、この
UnhandledExceptionFilter
機能は MS のサーバーにエラー レポートを送信しなくなりました。その代わり。カーネルは、例外がユーザーモード スレッドによって処理されていないことを検出します (ステップ 4)...
したがって、これは、プロセスが「クラッシュ」する方法がまったくないことを意味します-Vista以降では、WERの開始を妨げる方法で.私はこれを確認または反論しようとしています.
*exit
[a]: 明らかに、さまざまな関数または関数のいずれかを呼び出すことで、プロセスを跡形もなく簡単に「強制終了」できterminate*
ます。問題は、そのような終了理由を除外できる場合、WER ダイアログが表示されないようにする方法で Win7 のユーザー モード プロセスを (どのように) "クラッシュ" させることができるかということです。
windows - Windows エラー報告 - サービスに依存する Windows dll-s の読み込み中にサービスがハングしたと報告する
Win7の起動時に開始するサービスがあります。起動後にサービスを開始すると、Windows エラー報告サービスによって報告されたイベント ログに警告が見つかりませんが、起動中に自動的に開始されると、次のようになります。
wer で生成されたファイルを見ると、次のように書かれています。
Windowsローダーによるサービスのロード中に、ハングのようなものが検出されたようです。しかし、説明したレポートの起動中にパフォーマンス レコーダーを使用してログを収集したところ、次のことがわかりました。
.exe の読み込み (上記のグラフから) と、WER レポートに記載されていないモジュール (kernel32.dll) の読み込みの間の距離を測定すると、200 ミリ秒以下であることがわかります (これらはすべて Microsoft dll-s)。WER がそれをハングとして報告している理由と、それについて何かできるかどうか疑問に思います。私は常にシステムの起動時に再現し、他の状態では再現しません。
注サービスは正常に開始されます。これは、起動のたびに発生するイベント ビューアーの報告だけです。
windows - レポートをハードウェア デベロッパー センター ダッシュボードに表示するための要件は何ですか?
Microsoft Windows Dev Center - Hardware でアカウントを作成し、Windows エラー報告契約に署名しました。
次に、null ポインター逆参照を導入して、テスト コンピューターで使用した署名付きドライバーをリリースし、BSoD レポートを Microsoft に送信しました。
Microsoft Ecosystem Metadata Exchange を使用してドライバー名をマッピングし、製品グループを作成しました。
私がインターネットで読んだことから、これらはレポートをダッシュボードに表示するためのすべての要件であるはずです. マッピングが行われてから、レポートはおそらく 2 回更新されました。
私もメールを送りましたが、「通常は5日かかります」とのことでした。その後、すでに2週間が経過したことを説明したところ、「申し訳ありませんが、WERチームと仕事をさせてください」と言われた. そしてそれ以来、私は何も聞いていません。
私が見逃した追加の要件はありますか?
iis - IIS ログ形式 - 最後の値
再起動の原因となる 500_Server_Error が発生し続けるため、IIS ログの意味を理解しようとしています。
これらは最後の数字です。一部は知っていますが、すべてではありません。以前に経験した人はいますか?
winapi - Win32: Windows エラー レポート ダイアログで TerminateProcess が失敗する
ShellExecuteEx を使用してクラッシュする別のプログラム (「B」) を呼び出すプログラム (「A」) に取り組んでいます。プログラム A は B のクラッシュを検出でき、TerminateProcess を使用して B を強制終了できます。
ただし、B がクラッシュすると (および A が終了する前に)、Windows の「プログラム B が動作を停止しました」というダイアログ (WerFault.exe) が表示されます。したがって、A は B を強制終了できますが、B が失敗するたびに WerFault.exe のインスタンスが残ります。
WER API を使用して WerAddExcludedApplication を呼び出し、B を除外リストに追加することで、多少の喜びが得られるのではないかと考えました。ただし、「動作が停止しました」ダイアログを変更して、「閉じる」と「デバッグ」のみを提供し、「オンラインで解決策を確認する」を省略するだけです。
WerFault.exe を呼び出さずに B をクラッシュさせる方法はありますか? (Windows 7)。
このスレッドを見ました: WER ダイアログを取得せずに Windows-7 でプロセスをクラッシュさせるには? . ただし、その意図は、WER を無効化または却下する方法ではなく、WER が常に呼び出されるようにすることでした。
提案?
windows - 「Excel が動作を停止しました」ダイアログ ボックスの抑制
以下に示す「Microsoft Excel が動作を停止しました」というダイアログ ボックスへの応答を抑制/自動化するにはどうすればよいですか? 問題のWBの自動保存をすでに無効にしています。ダイアログ ボックスをバイパスして、すぐに自動再起動を開始したいと思います。ボックスが十分に長く (1 時間以上?) ぶら下がっている場合、実際には再起動すると思いますが、すぐにこれを行う方法を考えています。
c# - WER (Windows エラー報告) ツールを使用して、プログラムのミニダンプを収集する
一部のプロジェクトでは、MiniDump 生成関数を使用してダンプを生成しました。
これらのダンプを生成し、マシンから一部の開発/テスト マシンにコピーして分析することができます。
Windows でプログラムが失敗すると、クラッシュ情報を送信するかどうかを示すフォームが表示されます。この機能を有効にするために、いくつかの関数をコードに追加することもできます。
ただし、ダンプはマイクロソフトのワトソン サーバーに送信されますか?
これらの WER 有効化関数をコードに記述し、CorporateWERServer プロパティを更新して、Microsoft ではなくサーバーにバグが転送されるようにすることは可能でしょうか。
そのため、Microsoft の既に実装されている機能を使用して、アプリケーションがクラッシュしたときに自動的に通知される場合があります。さらに、プログラマーがそのような状況で使用できるように、Linux 側で利用できる同様のユーティリティはありますか。