問題タブ [fastmm]

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 に答える
184 参照

delphi - FastMM と暗黙の dll の遅延

FastMM4でdelphi XE2を使用しています。「Delayed」というキーワードを使用して DLL を作成したい場合、アプリケーションを終了すると違反が発生します。「遅延」なしでテストすると、違反なしでアプリケーションを終了できます

メインコード:

DLL コード :

FastMM にパラメータはありますか?

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

c++ - Indy TIdTCPServer を使用した Windows サービス (CodeGear C++ XE5) でのメモリ リーク

CodeGear C++ Builder XE5 を使用しています。TIdTCPServer で作成されたサーバーはうまく機能します。ただし、サービスによって使用されるメモリは増加しています。最終的にFastMM4メモリマネージャのフルバージョンを含めることができ、オプションをいじった後、メモリリークの確認が見つかりました:

明らかに x1 と x2 は私には関係ありませんが、x21 リークは非常に使用頻度の高いサービスであるため、問題があります。各接続で 100 バイトと 164 バイトが出血します。

詳細情報の状態:

この時点で私は立ち往生しています.Zip_intを直接呼び出さないため、これがどこに来るのかわかりません. 誰でも私を正しい方向に向けることができますか?

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

delphi - ShareMM の FastMM LogAllocatedBlocksToFile

別の一連の DLL を動的にロードする一連の EXE があり、それらのほとんどは COM オブジェクトを公開しています。

現在、EXE の 1 つを使用して、これらの DLL の 1 つをデバッグしようとしています。

すべてのプロジェクトは、最新の FastMM4 (4.991) と ShareMM などを使用して、fulldebug モードでコンパイルされます。

いくつかの奇妙なオブジェクトの作成/割り当て/破棄の動作を持つルーチンがあるため、それらをログに記録して、それによって作成されたのではなく、それによって破棄されたオブジェクトをキャッチすることを考えていました。

SetMMLogFileName('before') と LogAllocatedBlocksToFile(0, 0); を使用します。ルーチンが作業を開始する前に、存在するもののスナップショットを取得します。

次に PushALlocationGroup(1) を実行し、ルーチンが終了したら、上記と同様の呼び出しを行います。

問題は、何も記録されないことです。ルーチンは DLL で実行され、メインの MM は EXE によって初期化されるため、そのようなことは理にかなっています (これはデバッグで既に確認されています)。

したがって、基本的には、FastMM の共有認識でログ割り当てブロック ルーチンを作成する必要があります。コードを調べましたが、それを行う方法がわかりません。

誰かがすでにこれを行っているか、私を始めるための指針がありますか?

ありがとう。

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

delphi - FireMonkey プロジェクトの XE7 C++ Builder で FastMM を使用するには?

XE7 C++ ビルダー、特に FireMonkey で FastMM フル デバッグ モードを使用しようとしています。ソース コードをダウンロードし、「FastMM4BCB.cpp」に記載されている手順に従いました。FastMM コンパイルを取得するために、次の変更を加えました。

  1. 「FastMM4BCB.cpp」の 63 行目をコメント アウトします。これは次のとおりです。 #pragma option -k- -d -vi- -O2 -b- -3 -a8 -pc -RT- -x -xd -r -AT -vG- -vG0- -vG1- -vG2- -vG3- -vGc- -vGt- -vGd-
  2. プロジェクト ファイルに次の行を追加 します

これらの変更により、FastMM は正常にコンパイルおよび実行されます。ただし、次のように、空のプロジェクトでもメモリ リークが報告されます (FireMonkey と VCL の両方を試しました)。

  1. 13~20バイト:不明×8
  2. 61~68バイト:不明×1
  3. 189~204バイト:不明×1

VCL プロジェクトでは、完全なデバッグ モードを使用して、これらのメモリ リークに関する詳細を取得することができました (たとえば)。

空の FireMonkey プロジェクトでは、FastMM によってマークされたアドレス 0x80 パターンでアプリを閉じると、(完全なデバッグ モードで) アクセス違反エラーが発生します。FireMonkey で機能させ、空白のプロジェクトでこれらの誤検知アラートを削除する方法はありますか? ありがとう