2

3D アプリケーション用のプラグイン (基本的には dll) を作成していますが、クラッシュすることがあります。これらを見つけるのが非常に難しい場合があり、クラッシュ ロガーの作成 (または既存のクラッシュ ロガーの統合) に時間を投資したいと考えていました。

  1. スタックトレースを教えてください。
  2. ローカル変数のリストを教えてください。
  3. これらのアイテムをファイルにダンプするか、指定された URL にアップロードします。

これまでのところ、Google breakpadを見てきましたが、それを統合する方法がわかりません。ドキュメントはせいぜい貧弱に思えます。私はそれを使用しようとし、Windows上でビルドするまでに成功しましたが、一部の単体テストは失敗し、その時点で何をすべきかについての助けはありません. また、私のニーズには少し過剰かもしれません。

スタック トレースを取得する方法を詳しく説明している次のサイトを見つけましたGENERATE STACK TRACES ON CRASH PORTABLY IN C++。しかし、これがリモートシステムで機能するかどうかはわかりません。これが機能するためには、これがデバッグ バージョンであり、pdb ファイルが提供される必要があると思いますか? ローカル変数の取得に関しては、まだ何も見つけることができませんでした。役立つリソースを知っている人はいますか?

4

2 に答える 2

1

この記事は 2002 年に書かれたものですが、事後分析のデバッグにまだ関連しています。それを機能させるために必要なすべての理由、手順、および設計が示されています。

SetUnhandledExceptionFilter最近では、アプリで .dmp ファイルを呼び出して書き込み、それをダブルクリックして Visual Studio に読み込む方が少し簡単です (私は Windbg が好きでしたが!) 。ダンプを理解するには、デバッグ システムに適切なシンボル (.pdf ファイル) が必要ですが、独自のシンボル サーバーを作成すると (この記事の手順は非常に簡単です)、どのシンボルが必要かを判断できるはずです。任意のアプリ。ただし、シンボルの保存については訓練する必要があります。間違ったシンボルは役に立たないよりも悪いです。

于 2013-06-02T12:32:05.807 に答える