タグ付けされた質問 「delphi-2009」

8
DelphiでのEProgrammerNotFound例外?
Delphi 2009では、SysUtils.pasの425行目にこれが含まれています。 EProgrammerNotFound = class(Exception); これは単にイースターエッグですか、それとも深刻なものですか? この例外はいつ発生しますか? Delphi PrismやFree Pascalにも存在しますか? Q:この例外クラスはまだDelphi(現在はXE7)で宣言されていますか?A:はい、それも文書化されています! ソフトウェア障害を示す非標準的な方法。 代わりにEProgrammerNotFoundを使用して、実行時に検出されたソフトウェア障害を示すことができます。

1
FastMMによって特定のメモリブロックが解放されなかったかどうかをプログラムで確認する方法はありますか?
メモリブロックが解放されなかったかどうかを検出しようとしています。もちろん、マネージャーはダイアログボックスまたはログファイルでそれを通知しますが、データベースに結果を保存したい場合はどうなりますか?たとえば、データベーステーブルに、特定のブロックを割り当てたルーチンの名前を付けたいと思います。 FastMMのドキュメントを読んだ後、バージョン4.98以降、メモリの割り当て、解放、再割り当てが発生すると、マネージャから通知を受ける可能性があることがわかりました。たとえば、OnDebugFreeMemFinishイベントはPFullDebugBlockHeader有用な情報を含むaに渡されます。PFullDebugBlockHeader不足していることが1つあります。指定されたブロックがアプリケーションによって解放された場合の情報です。 OnDebugFreeMemFinish解放されていないブロックに対してのみ呼び出されない限り?これは私にはわからないので知りたいです。 問題は、OnDebugFreeMemFinishイベントにフックしてもブロックが解放されたかどうかを確認できなかったことです。 次に例を示します。 program MemLeakTest; {$APPTYPE CONSOLE} uses FastMM4, ExceptionLog, SysUtils; procedure MemFreeEvent(APHeaderFreedBlock: PFullDebugBlockHeader; AResult: Integer); begin //This is executed at the end, but how should I know that this block should be freed //by application? Unless this is executed ONLY for not freed blocks. end; procedure Leak; …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.