問題タブ [minidumpwritedump]
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.
c++ - C++ MiniDumpWriteDump - FullMemoryDump では多くの情報が得られない
MiniDumpWriteDump を使用して、クラッシュ時にダンプ ファイルを生成しています。私は完全なメモリダンプを実行しようとしています。これは機能しているようで、予想どおり大きなファイルが生成されます。
ただし、この巨大なファイルを Visual Studio (2005) にロードすると、ヒープ上の変数の値を確認できないようです。実際、通常のダンプよりも多くの情報は得られません...
MiniDumpWriteDump への呼び出しは次のとおりです。
注: 私は有効なスタックである pdb の完全なセットを持っており、私のテスト アプリケーションではゼロ除算でエラーを偽装しています。
これはなぜですか?
乾杯リッチ
debugging - ヒープ情報を保持しながら、マネージ プログラムのミニダンプのサイズを縮小しますか?
.NET 4.0 のダンプ デバッグ サポートにより、(もちろんユーザーに尋ねた後:) C# プログラム クラッシュのミニダンプを作成して問題追跡システムにアップロードすることを自動的に検討しています (ミニダンプが問題の原因を解決するのに役立つようにするため)。クラッシュ)。
WithFullMemory ミニダンプ タイプを使用すると、すべて正常に動作します。スタック変数とヒープ変数の両方を確認できます。残念ながら、(圧縮された) ダンプは、小さな C# プログラムであっても非常に大きくなります。
"Normal" ミニダンプ タイプを使用すると、非常に小さなダンプが得られますが、マネージ デバッガーではスタック変数情報さえ利用できません。実際、マネージド デバッガーでは、WithFullMemory よりも小さいものはまったく役に立たないようです。MINIDUMP_CALLBACK_ROUTINE を使用して、含まれるモジュール情報を独自のモジュールに制限する試みをいくつか試みましたが、マネージ ダンプにはほとんど影響がないように見えますが、それでもマネージ デバッグを壊すことができますか?
管理されたデバッグに役立つようにしながら、ミニダンプをトリミングする方法に関するヒントはありますか?
debugging - MiniDumpWriteDump()関数のパラメーター:なぜハンドルとIDが必要なのですか?
以下のように、MSDNでMiniDumpWriteDump()メソッドの定義を確認しました。
パラメーター:
hProcess [in]
情報が生成されるプロセスへのハンドル。
ProcessId [in]
情報が生成されるプロセスの識別子。
プロセスハンドルまたはプロセスIDのいずれかでプロセスを識別できるのに、なぜ両方を渡す必要があるのでしょうか。それらの1つを他から推測することはできませんか?それで、それらの間にはいくつかの違いがあるはずです、それらは何ですか?
ありがとう。
.net - windbgで!clrstackを使用できるように.netコンポーネントをホストするネイティブC++プロセスをダンプするために設定された最小のMINIDUMP_TYPEは何ですか
いくつかの.netコンポーネントをホストするネイティブC++アプリケーションがあります。エラーが発生すると、このアプリケーションはMiniDumpWriteDump関数を使用してミニダンプを作成します。ここで質問の最小セットは何ですか
小さなダンプファイルを生成するためにMiniDumpWriteDumpに渡す必要がありますが、clrスタックを表示する機能があります)?確かに、フルメモリダンプは機能しますが、耐えられる最小値のみを取得するにはどうすればよいですか?
debugging - MiniDumpWriteDump が失敗するのはなぜですか?
独自のデバッガ アプリケーションを作成しました。プロセスにアタッチし、クラッシュ ダンプ ファイルを作成します。それはほとんどの場合うまくいきます。私が抱えている問題は、デバッグ中のアプリケーションがミューテックス オブジェクトを待機しているときに機能しないことです (これがまさにデバッグしたい問題です)。
さらに、ループして Sleep(100) を呼び出す単純な test.exe アプリケーションを作成しましたが、毎回このアプリケーションで MiniDumpWriteDump を呼び出すと、デバッガーが失敗します。
私は何を間違っていますか?
以下のコードから返されるエラー コードは 2147942699 (0x8007012b) です。
また、同様の問題を抱えていると思われる他の誰かから借りた次のコードスニペットを使用して、権限を増やしてみました。
c - MiniDumpWriteDump segfault?
私はプロセスをダンプしようとしています。calc.exe
プログラムを実行すると、
ここにコードがあります
c++ - MiniDumpWriteDumpはMiniDumpNormalでは失敗しますが、MiniDumpWithFullMemoryでは機能します
次のように、WindowsXPSP3で実行されているローカルサービスアプリのトップレベルの例外ハンドラーからMiniDumpWriteDumpAPIを呼び出しています。
上記はエラーコード0x80070057で失敗しますが、ダンプタイプをMiniDumpWithFullMemoryに変更すると、問題なく動作します。なぜですか?
winapi - Windows の破損したミニダンプ
プログラムがクラッシュすると、未処理の例外ハンドラーからミニダンプが作成されます。私が抱えている問題は、人々が私にクラッシュ ダンプを送ってきたことですが、Visual Studio 2010 でそれらを開こうとすると、破損していると表示されます (「ダンプ ファイルの形式が無効です」)。dbghelp.dll
プログラムと一緒に配布していませんが、配布する必要がありますか? それがバージョンの問題である場合、Visual Studio は私に通知し、上記のメッセージを出力しないと思います。
ログを生成するために使用するコードは
crash-dumps - Windows での DLL からの自動クラッシュ ダンプ生成
私の目的は、アプリケーションがクラッシュするたびにクラッシュ ダンプを生成することです。
C++ で記述された DLL があります。これは、C# .NET アプリケーション (とりわけ) から使用されます。DLL 内から、SetUnhandledExceptionFilter を使用して独自のカスタム未処理例外フィルターを設定し、ハンドラーで MiniDumpWriteDump を使用してダンプを書き込みます。
VS2008 内から .NET アプリケーションを実行すると正常に動作し、メモリ アクセス違反が発生すると、ダンプが書き込まれ、アプリケーションが終了します。
しかし、VS の外部でスタンドアロンとして実行すると、カスタム ハンドラーがまったく呼び出されず、ダンプが書き込まれません。代わりに、「アプリケーションで未処理の例外が発生しました...」というメッセージと「詳細」、「続行」、「終了」ボタンを含むエラー ダイアログが表示されます。
スタンドアロンとして実行すると、OS (Windows 7) が何らかの理由でハンドラーのインストールを妨げていると推測しています。
誰でもこれで私を助けることができますか?