問題タブ [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.

0 投票する
0 に答える
189 参照

c++ - ミニダンプの逆アセンブリがバイナリの逆アセンブリと異なる原因は何ですか?

クラッシュのミニダンプがあります。クラッシュの時点で、正常に実行されてはならない奇妙なコードがいくつかあります。何かのようなもの:

AnObject::AFunction は bool を返すメンバー関数です。そのため、結果は 0 または 1 として eax に格納する必要があります。この時点で eax を逆参照しても意味がありません。

対応するバイナリを逆アセンブルしましたが、実際、この関数のコードは異なります。

ミニダンプの逆アセンブリ コードが、実際のバイナリの逆アセンブリ コードと異なるのはなぜでしょうか。

0 投票する
0 に答える
112 参照

debugging - 実行中のプロセスを「ダンプ」して、別のPCで復元/続行することは可能ですか?

お客様に再現性のない問題があります(一部のデータが正しく表示されていません)。お客様自身が一日に数回問題を抱えていますが、社内で問題を再現することはできません。

顧客が問題を抱えたら、リモートデバッグを使用して実行中のプロセスを調査できますが、これには、開発者のPCが多くのVPNソフトウェアを介して顧客のPCに接続する必要があります。実際には、アプリケーションを実行しているサーバーに直接接続することを顧客が望んでいないため、これはほとんど不可能です(多くの場合、リモートデスクトップまたはCitrixシステムも関係しています)。

実行中のプロセスのMiniDumpを作成してデバッガーで調査することはできますが、プロセスを続行して実際に何が起こっているかを確認することはできません。

プロセスのダンプを作成し、そのダンプを開発者のPCにコピーして、開発者のPCでプロセスを続行する可能性はありますか?アプリケーションは、ネイティブのアンマネージC++アプリケーションです。

もちろん、データベース接続、ネットワーク接続、ファイルなどに関連するすべてのロジックは使用できませんが、この場合、私は主に内部ロジックに関心があります。

これが不可能な場合、これは通常、代わりに仮想マシンを使用して可能ですか?

0 投票する
2 に答える
9708 参照

kernel - WinDbgを使用してカーネルダンプを作成する方法

WinDbgを使用して、Windows用のカーネルモードデバイスドライバーをデバッグしています。ミニダンプをオンデマンドで作成することは可能ですか?

つまり、ブレークポイントの1つがヒットし、システムが停止します。ミニダンプを作成したい(スタックのみとしましょう)。このためのWinDbgキーワードはありますか?

前もって感謝します

0 投票する
1 に答える
2987 参照

c++ - MiniDumpWriteDumpをアウトプロセスで使用している場合、例外情報を取得するにはどうすればよいですか?

MiniDumpWriteDump関数を使用してWindowsでプロセスのコアダンプを作成する場合、同じプロセス内から呼び出された場合は機能しない可能性があるため、別の「ウォッチドッグ」プロセスから実行することをお勧めします(ここ、およびここなど) 。MiniDumpWriteDump

現在、アプリケーション未処理の例外でインプロセスで呼び出しています(ウォッチドッグスレッドから呼び出します)。動作しないという問題が発生することがあるので、別のプロセスに移動したいと思います。

これで、ダンプの書き込みを開始するように他のプロセスに通知するのは簡単です(イベント、セマフォを使用して名前を付けるだけです)が、LPEXCEPTION_POINTERS登録したコールバック関数で取得した情報をSetUnhandledExceptionFilter他のプロセスに渡して、次のようにする方法を教えてください。 MiniDumpWriteDumpsExceptionParam引数に渡されましたか?

0 投票する
0 に答える
1086 参照

c++ - MiniDumpWriteDump と Pipe への書き込みによりデッドロックが発生する

私のアプリでは、関数Unnamed Pipesの出力として使用してMiniDumpWriteDumpいます。実際にファイルを作成するのではなく、MiniDump をメモリ バッファーに書き込むだけです。

パイプからバイトを読み取るメソッドが別のスレッドから呼び出されます。関数を呼び出すMiniDumpWriteDumpと、ReadFileandMiniDumpWriteDump関数は返されません。

ハンドルが悪いのか、パイプのサイズが小さすぎるのかを確認しようとしましたが、単純なWriteFile関数を使用すると、すべて問題ないように見えます(パイプのサイズが記述された文字列よりも小さい場合でも)。

これが私のコードの一部です:

0 投票する
1 に答える
1984 参照

windows - 別のプロセスからの MiniDumpWriteDump

MiniDumpWriteDump を使用して、アプリケーションのクラッシュ ログを生成したいと考えています。Microsoft は、別のプロセスからダンプを実行することを推奨しています。これは、私がやろうとしていることです。私が抱えている問題はPEXCEPTION_INFORMATION、親プロセスから子プロセスに構造を渡すことです。問題は、親プロセスがこの構造のメモリを所有しており、それを子プロセスに渡す必要があることです。この投稿を見つけました

MiniDumpWriteDump をプロセス外で使用している場合、例外情報を取得するにはどうすればよいですか?

そして、受け入れられた答えは、「ポインターがウォッチドッグプロセスのコンテキストで無効であることは問題ではありません」と述べました。PEXCEPTION_INFORMATIONこれにより、ハンドルされていない例外フィルターが受け取るポインターを子プロセスに渡すだけで、ウィンドウが親からそれを読み取ることができると信じるようになりました。これは起こっていないので、子プロセスがクラッシュした瞬間に何をすべきか本当にわかりません。おそらく、ウィンドウがこのメモリに子に属しているかのようにアクセスしようとするためです。ここで明らかに何かが欠けていますが、何がわかりません。パイプを使用して子プロセスにデータを送信します。上記の質問への回答では、メモリ マップされたファイルを使用すると機能することが示されていますが、その理由、または回答を正しく理解しているかどうかはよくわかりません。

0 投票する
5 に答える
12307 参照

windows - Windows 7 でミニダンプを分析するためのデバッグ ツールのインストール

サーバークラッシュ(Windows Server 2008 R2)のダンプファイルを分析するために、「デバッグツール」をインストールしようとしました。

以前はこれを行っていましたが、Windows 7 用のデバッグ ツールをインストールまたは検索する方法が見つかりません。

この KB 記事を読みました: http://support.microsoft.com/kb/315263

次に、次の記事 ( http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx )から「Windows 用デバッグ ツール」をダウンロードしようとしました。「Windows 用のデバッグ ツールをスタンドアロン コンポーネントとしてインストールする」を選択し、ファイルをダウンロードしてインストールしました。

正常にインストールされましたが、まだファイルが見つかりません。これはばかげた質問のように思えますが、デバッグ ツールを見つけることができません。上記の Windows 7 用デバッグ ツール ( http://www.microsoft.com/en-us/download/details.aspx?id=8279 )をダウンロードしようとしましたが、やはり見つかりませんでした。

どんな助けでも大歓迎です

0 投票する
0 に答える
147 参照

c++ - C++ バッファ オーバーラン ボックスを無効にする

私の問題は、アプリのクラッシュ時にバッファ オーバーラン メッセージがポップアップすることです。未処理の例外フィルタを設定するミニダンプを使用しています。これは、メッセージをポップアップする代わりに、プログラムを単にクラッシュさせて閉じるのに十分です。

フィルターが適用されるとすぐに NULL ポインターを逆参照するプログラムをテストしました。サーバー マシン (プログラムが実行されるように設定されている場所) で動作しましたが、フィルターを使用しても、リリース モードのアプリケーションであり、デバッグが定義されていません。それでもメッセージがポップアップします。

クラッシュするたびに自動的に再起動する別のアプリケーションがあるため、この問題は非常に深刻です。クラッシュ時に、プログラムを閉じる代わりにメッセージボックスが表示されるため、これは発生しません。それはサーバーであり、また、メッセージ ボックスが原因で、.dmp ファイルが作成されていません。

0 投票する
1 に答える
2545 参照

delphi - EExternal例外中にEXCEPTION_POINTERSを取得するにはどうすればよいですか?

どうすればEXCEPTION_POINTERS、つまり両方を取得できますか?

  • PEXCEPTION_RECORD
  • PCONTEXT

EExternal例外中のデータ?

バックグラウンド

Windowsが例外をスローすると、PEXCEPTION_POINTERS;が渡されます。例外情報へのポインタ:

DelphiEExternalが例外をスローすると、その情報の半分しか含まれていませんPEXCEPTION_RECORD

例外の間に、どのようにしEExternalて両方を取得しますか?

使用例

MiniDumpWriteDumpDelphiの関数を使用してミニダンプを作成しようとしています。

この関数には、いくつかのオプションのパラメーターがあります。

基本的なレベルでは、3つのオプションのパラメーターを省略できます。

そしてそれは成功します。欠点は、ミニダンプに例外情報がないことです。その情報は(オプションで)4番目のminiExceptionInfoパラメーターを使用して渡されます。

これは良いEXCEPTION_POINTERSことですが、例外が発生したときにWindowsによって提供されるを取得する方法が必要です。

TExceptionPointers構造には2つのメンバーが含まれます。

EExternalDelphiの例外がすべての「Windows」例外のベースであり、必要なものが含まれていることを私は知っていますPExceptionRecord

ただし、関連付けられたは含まれていませんContextRecord

PEXCEPTION_RECORD十分ではありませんか?

に渡そうとするEXCEPTION_POINTERSと、 nilMiniDumpWriteDumpのままになります。ContextRecord

その後、関数はエラーで失敗します0x8007021B

ReadProcessMemoryまたはWriteProcessMemoryリクエストの一部のみが完了しました

どうSetUnhandledExceptionFilterですか?

SetUnhandledExceptionFilter必要なポインタを使って取得してみませんか?

それに関する問題は、例外がフィルタリングされていない場合にのみ、フィルタリングされていない例外ハンドラが起動することです。これはDelphiであり、例外を処理するためです。

アプリケーションは、WER障害で終了することはなく、また終了することも望んでいません。

EXCEPTION_POINTERS中に取得するにはどうすればよいEExternalですか?

注:バックグラウンド以降はすべて無視できます。それは私をよりスマートに見せるために不必要に設計されたフィラーです。

先制的な卑劣なHeffernanのコメント:Delphi5の使用をやめるべきです。

ボーナスリーディング

0 投票する
2 に答える
5267 参照

c# - クラッシュ ダンプ ファイルの読み取り方法 (ソース コードと .pdb ファイルがあります)

既に StackOverflow にある質問を読みましたが、まだ機能しません。

私は持っている

  • 顧客からのミニ ダンプ ファイル
  • 顧客が入手したものとまったく同じバージョンのコード
  • コードの .pdb ファイルはデバッグ ディレクトリにあります。

ミニ ダンプ ファイルをデバッグ ディレクトリに配置してから、Visual Studio 2010 で開いてみました。

通常のデバッグ メニューでは、[デバッグの開始] がグレー表示されています。

[ミニダンプ ファイルの概要] タブの右上隅に [アクション] のボックスがあります。そこで、[ネイティブのみでデバッグ] をクリックしましたが、「現在の場所で使用できるソース コードはありません」というメッセージしか表示されません。

本当に単純なものが欠けているに違いありません-誰かが私にヒントを教えてください。