6

ミニダンプに埋め込むことができるユーザーストリームデータ構造に開発者がどのような有用なものを入れるのか興味があります。MSDNは、MiniDumpWriteDumpのパラメーターを次のように説明しています。

PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam

このようにパラメータを記述します:

UserStreamParam[in]MINIDUMP_USER_STREAM_INFORMATION構造体の配列へのポインター。このパラメーターの値がNULLの場合、ユーザー定義情報はミニダンプファイルに含まれません。

テスターは常にすべてのバグを含む適切な形式のログを送信しない傾向があるため、プログラムの最後のnログ行をユーザーストリームに埋め込むことを検討していました。

また、そのセクションにハードウェアの仕様(メモリ、CPU、ビデオなど)を入れることもできます。

他に人々はユーザーストリームセグメントを何のために使用しましたか?

4

3 に答える 3

3

履歴ログ情報を含めるというあなたのアイデアが気に入っています。ただし、何らかのタイプの例外に応答してミニダンプが生成されている場合、ログ ファイルの読み取りを停止してダンプに含めることは、システムの安定性に問題がある可能性があるため、必ずしも最適な計画ではないようです。

デフォルトのタイプは MiniDumpWithFullMemory です。その場合、ユーザー ストリーム情報はアプリケーションでは特に役に立たないように見えます。なぜなら、フル メモリには必要な情報がほぼすべて含まれているからです (少なくともこれまでのところ)。また、ダンプ ファイルが送信されたときにすべてのエラー ログ ファイルを取得できたのも幸運でした。

ただし、ユーザーは構成パラメーターを使用してタイプを変更できます。小さなミニダンプ タイプの 1 つを使用すると、ユーザー ストリーム情報が非常に役立つことがわかります。この投稿を見るまで、ミニダンプ関数のそのパラメーターについて実際に考えたことはありませんでした。完全なメモリ ダンプが生成されない場合に非常に貴重な基本的な構成情報を含むメモリ内の構造がいくつかあります。また、例外を「引き起こした」ユーザーの詳細を含む構造体も便利です。ユーザーストリームとしてダンプされるものをいくつか追加することを検討する必要があります。

于 2009-12-20T16:43:41.583 に答える
1

Breakpadライブラリは、いくつかの簿記情報にユーザーストリームを使用します。スタックトレースから除外できるように、ミニダンプ書き込みを行う専用スレッドのスレッドIDを持つストリームが含まれています。また、CRTの無効なパラメーターハンドラーや純粋な仮想呼び出しハンドラーなど、致命的ではないコールバックに応答してダンプが書き込まれた場合は、アサーション情報を含むストリームも含まれます。

于 2013-01-29T15:51:07.107 に答える
1

ここに追加情報を入力するよりも便利なのは、WerRegisterFileで生成したログ ファイルを含めることです。

于 2009-12-27T20:12:02.660 に答える