7

2 つのアプリケーション (GUI、DataSnap サーバー) である多層ソフトウェアがあります。私の DataSnap サーバー アプリケーションにはバグがあり、EAccessViolation が発生することがあります。このような:

Exception EAccessViolation  in module unidac160.bpl at 00010CB1.
Access Violation at 002B77832 in module unidac160.bpl. Read of  address 0000000C

完全なコール スタックを取得し、それをファイルに記録したい。私もeurekalogを使っていますが、GUIアプリケーションだけでも有効です。

4

4 に答える 4

9

EurekaLog は、すべてのアプリケーションで非常に効果的です。例外をファイルに記録し、例外ダイアログをまったく表示しないように設定するだけです。

于 2012-05-03T06:19:32.253 に答える
7

オープンソースのログクラスには、ソースコード行を含む完全なコールスタックを備えた例外インターセプターがあります。

デバッグ情報は高度に圧縮されており(zipやその他の形式よりも優れています)、オプションでexeに格納されます。

オープンソース、Delphi5からXE2までで動作します。

最新バージョン(ソースコードリポジトリからのものを使用-つまり現在1​​.16)では、リクエストに明示的に記載されているように、ライブラリ内(つまり、.dllまたは.bpl内)で例外をログに記録することもできます。

(テストベンチだけでなく)実際のデータからの顧客サポートやアプリケーションの拡張に役立つ可能性のある顧客側のプロファイリングなど、他の機能もあります。

于 2012-05-03T16:17:33.937 に答える
4

MadExceptを使用して、アプリケーションのスタックを取得することもできます。ここでは、現在のスタックのトップを取得する、madExceptと同様の質問があります。

また、あなたの質問に関連して、これもあなたを助けることができます

Delphi Win32 アプリケーションでコール スタックを表示する

于 2012-05-03T08:01:07.900 に答える
0

MemCheckを使用してコール スタックをレンダリングしたことがありますが、最新の Delphi バージョンで引き続き機能するかどうかはわかりません。

于 2012-05-03T12:14:47.263 に答える