問題タブ [minidump]
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++ - R6025 ピュア バーチャル コールのキャプチャ
現在、未処理の例外の MiniDumps をキャプチャしてSetUnhandledExceptionFilter
いますが、「R6025: pure virtual function」というメッセージが表示されることがあります。
純粋な仮想関数呼び出しがどのように発生するかを理解しています。それらをキャプチャして、その時点で MiniDump を作成できるかどうか疑問に思っています。
c++ - Minidumps ではどの設定を使用する必要がありますか?
MiniDumpWriteDump
現在、MiniDumpNormal | MiniDumpWithIndirectlyReferencedMemory
フラグを使用して呼び出します。これは、デバッグ構成の内部ビルドでは問題なく機能しますが、リリース構成で必要なほど多くの情報を提供していません。
Release では、ミニダンプ データには、デバッガーがコード内のどこでエラーが発生したかを判断するのに十分なスタック情報が含まれていますが、他のデータは含まれていません。リリース ビルドで期待されるように、最適化されたためにローカル変数が欠落していると単純に言っているのではありません。コール スタックと現在のコード行以外に役立つものは何もありません。レジスタも、ローカルも、グローバルも、ローカルが指すオブジェクトもありません - 何もありません。現在のオブジェクトを表示できるようにする「this」も取得しません。それが使用のポイントでしたMiniDumpWithIndirectlyReferencedMemory
-ローカル変数とスタック変数によって参照されるメモリを含める必要がありましたが、そうではないようです。
代わりにどのフラグを使用する必要がありますか? 600MB 以上のダンプを使用して生成を開始したくはありませんMiniDumpWithFullMemory
が、より有用なデータを取得することを意味する場合は、現在取得している 90KB をいくらか超えてダンプを喜んで拡張します。おそらく、MiniDumpWithDataSegments
(グローバル)または...を使用する必要がありますか?
winapi - クラッシュ ダンプ内のレジスタの表示
クラッシュ ダンプで各スタック フレームのレジスタの内容を表示する方法はありますか? レジスタ ウィンドウには、例外が発生したときのレジスタが含まれているように見えますが、各スタック フレームでそれらの内容を確認できると便利です。
visual-studio - Visual Studio.NET 2005 でミニダンプ ファイル (*.dmp) を開くことはできませんか?
win32 api を使用してミニダンプを作成しました [DllImport("DbgHelp.dll", SetLastError = true)] private static extern bool MiniDumpWriteDump(
dmp ファイルが正常に作成されました。
この *.dmp ファイルを別の Visual Studio インスタンスで開いて、クラッシュの場所を特定しようとしています。
Visual Studio --> FILE-> プロジェクトを開く dmp ファイル オプションは使用できません。
ファイルを開くメニューですべてのファイルを選択し、dmp ファイルを開きました。しかし、私はデバッグすることはできません、
Visual Studio のダンプ ファイル オプションが無効になっている理由を教えてください。
私はwindbgやその他のツールを使用できることを知っています.Visual Studioを利用できるので、簡単に使用できます.
c++ - Windows .dmp または .minidmp が提供されたときに使用するモジュール/デバッグ シンボルをどのように識別 (およびアクセス) しますか?
任意の顧客からダンプ ファイルを受け取り、デバッグ セッションを実行してクラッシュを確認すると、多くの場合、MS または他のサード パーティのライブラリにあることがわかります。次の問題は、実際にモジュールを使用できることを確認できるほど、PC のセットアップに関する知識がない可能性があることです。
たとえば、現在、ntdll.dll (5.01.2600.5512) のシンボルをロードしようとして立ち往生しています。MSVC 2005 では、モジュール リスト ウィンドウのパス列に、完全パス ファイル名の前に * が表示され、XP/SP1/SP1a/SP2/SP3 用にダウンロードしたシンボルの読み込みが拒否されます。
インターネットからダウンロードしてローカルキャッシュに保存するシンボルサーバーのセットアップがあり、PCにあるモジュールに対して正常に機能しているようです。メソッドと同等の GUI を使用する
シンボルが間違っている可能性がありますが、新しいシンボルがダウンロードされていないため、次はどこに行けばよいですか? お客様に連絡して、インストールされている SP やその他のパッチを尋ねる必要はありますか? 必要なシンボルを取得するには、そのマシンをインストールしてから、dmp ファイルを使用してデバッガーを実行する必要がありますか?
exception - exit(1) をキャッチしています。
起動時に DLL をロードする MFC SDI アプリケーションがあります。ソースコードを表示してDLLを使用することしかできませんが、変更して再コンパイルすることはできません。
現在の状況では、DLL がエラーに遭遇するたびに、以下のように exit() が呼び出されます。
私の MFC アプリケーションでは、すべての例外を処理するように SetUnhandledExceptionFilter を設定し、デバッグ用に MiniDump も作成しました。
したがって、問題は、DLL がエラーに遭遇するたびに、ステータス コード 999 で exit() を呼び出すだけであり、私の ExceptionFilter はそれをキャッチしないため、PostMortem デバッグ用の MiniDump が作成されないことです。
1. グローバル例外ハンドラーがこれをキャッチする他の方法はありますか
?
2. exit() 関数をオーバーライドして、呼び出されたときに「throw("エラー発生!")」を呼び出し、グローバル例外ハンドラーがそれをキャッチできるようにすることはできますか?
3. MFC アプリケーションで atexit() を使用してみました。これにより、DLL が exit() を呼び出すたびにエラーをスローする別の関数を登録します。しかし、これもうまく機能していないようです。
私が本当にやりたかったことは、DLL でエラーが発生するたびに、MiniDump を生成して PostMortem デバッグを実行できるようにすることです。この状況でうまくいく可能性のあるものは他にありますか?
ありがとう。
windows - windbgdumpコマンドがエラー0x8007012bで失敗する
顧客がハングのミニダンプをキャプチャしようとしています。彼はWindDbgを起動し、プロセスに正常に接続します。WinDbgはそのヘッダーを表示します。
ロードされたモジュールが列挙されます。
彼はダンプコマンドを入力します:
それは報告します:
エラー0x299は次のとおりです。ファイルシステムの制限により、要求された操作を完了できませんでした
これが何を意味するのか、またはどのように診断するのか、何かアイデアはありますか?
c++ - ビルド後の手順により、ネイティブdllのシンボル(pdb)が読み込まれません
シンボルで構築されたネイティブリリースdllがあります。dllを変更するビルド後の手順があります。ビルド後のステップでは、ある程度の圧縮が行われ、おそらくいくつかのデータが追加されます。pdbファイルは引き続き有効ですが、WinDbgもVisual Studio 2008も、ビルド後の手順の後にdllのシンボルをロードしません。リリースdllが参照されているダンプをロードするときにWinDbgまたはVisualStudioのいずれかがシンボルをロードするようにするには、pdbファイルまたはdllのどのビットを変更する必要がありますか?
重要なのはファイルサイズですか?チェックサムまたはハッシュ?タイムスタンプ?
ダンプを変更しますか?またはpdbを変更しますか?出荷前にdllを変更しますか?
(pdbは、リリースされたdllを参照するダンプコールスタック内のアドレスのシンボル名を手動で取得するために使用できるため、有効であることがわかっています。* ssで、コールスタック内のすべてのアドレスに対して手動で行うのは非常に面倒です。すべてのスレッド。)
visual-studio - Visual Studio 2008 Expressを使用して、ソースを使用して分析をダンプしますか?
Visual Studio 2008 Expressを使用して、ソースを使用してアプリクラッシュミニダンプ(SetUnhandledExceptionFilter、またはminidumpwritedump()によって作成されたものなど)を分析する方法はありますか?
私は通常、VSの「実際の」バージョンを使用してこれを実行しますが、(VS 2008 Expressを使用して)個人のプロジェクトで機能させようとすると、「現在の場所で使用できるソースコードがありません」と表示されます。分解窓以外のものを私に与えることを拒否します。問題のアプリのシンボルはデバッガーによって読み込まれます。[ソースファイルのデバッグ]プロパティページには、ソースコードが存在するディレクトリへのポインターが含まれていますが、サイコロは含まれていません。
VS 2008のExpressエディションを介してこれを行うことさえ可能ですか?もしそうなら、私がこれを機能させるために他に何を試みることができるかについて誰かが何かアドバイスがありますか?
hash - MicrosoftはwinqualイベントのイベントIDをどのように生成しますか?
winqualでアイテムを識別するために使用されるIDに興味があります。
ある種のハッシュだと思います。これは公開されていますか?
モジュール名、そのバージョン、およびオフセットのハッシュ?
これは適切なようですが、切り捨て/不可逆アルゴリズムを使用しない限り、サイズが小さすぎて可能性をカバーできません。
これは、クライアントマシンのミニダンプで生成されているようです。