5

delphi 2007アプリケーションでは、madExceptを使用して例外を処理しました。標準のダイアログを使用して、ユーザーが必要に応じてメールでレポートを送信できるようにします。

この機能に少し追加したいと思います。ユーザーが完全なレポートを送信しないことを選択した場合でも、例外をファイルに記録しますが、完全なレポートは記録しません。例外クラスとメッセージ、およびソースファイルと行番号が必要です。

最初の2つは簡単ですが、後者を見つける簡単な方法を見つけることができません。

インターフェイスの形式で完全な例外レポートがありIMEExceptionます。私が見る限り、呼び出しスタックはBugReportSectionsプロパティを介してのみ利用可能であり、プレーンテキストでスタックを提供します。

madStackTrace.pasには、StackTrace( )必要なものを提供する関数があります。多くのパラメータが必要であり、ドキュメントには情報が少し不足しています。

質問:StackTrace( )例外がスローされたスレッドからスタックの最上位のアイテムのみを返すように、 フィードする適切なパラメーターを知っている人はいますか?

4

1 に答える 1

5

madStackTrace.pas には別の関数がStackAddrToStrあります。これは、単一のアドレスを取得し、書式設定されたテキストを返します。exceptクラッシュしているスレッドのブロックにいる場合は、グローバルExceptAddr変数をそれに渡すことができます。madExcept コールバックのいずれかを使用している場合は、代わりに「IMEException.ExceptAddr」を使用してください。

于 2011-01-07T16:00:50.133 に答える