1

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

--------------------------------2014/10/23 16:58:26--------------------------------
A memory block has been leaked. The size is: 20

This block was allocated by thread 0x628, and the stack trace (return addresses) at the time was:
41C897 
41C591 
415A2D 
40E4B1 
40E4BB 
40EE45 
76F73C5A [Unknown function at RtlImageNtHeader]
76FCB19C [Unknown function at RtlUlonglongByteSwap]
76F957CE [RtlLoadString]
76F73CD3 [Unknown function at RtlImageNtHeader]
76F73CD3 [Unknown function at RtlImageNtHeader]

The block is currently used for an object of class: Unknown

The allocation number is: 12

Current memory dump of 256 bytes starting at pointer address 7EF1A160:
80 80 80 80 80 80 80 80 E0 9B F3 7E 80 80 80 80 C3 7E 6A 2C 80 80 80 80 00 00 00 00 80 9F F1 7E
00 00 00 00 00 00 00 00 A8 7A 40 00 00 00 00 00 15 00 00 00 97 C8 41 00 91 C5 41 00 2D 5A 41 00
23 B1 40 00 B1 E4 40 00 BB E4 40 00 6C 60 42 00 F7 F1 40 00 5A 3C F7 76 9C B1 FC 76 CE 57 F9 76
28 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 80 1D 2A E6
80 80 80 80 80 80 80 80 E0 9B F3 7E 80 80 80 80 7F E2 D5 19 80 80 80 80 00 00 00 00 21 AC F1 7E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 00 00 00 97 C8 41 00 91 C5 41 00 2D 5A 41 00
6C 60 42 00 4A F6 40 00 5A 3C F7 76 9C B1 FC 76 CE 57 F9 76 D3 3C F7 76 D3 3C F7 76 FE 3C F7 76
€  €  €  €  €  €  €  €  à  ›  ó  ~  €  €  €  €  Ã  ~  j  ,  €  €  €  €  .  .  .  .  €  Ÿ  ñ  ~
.  .  .  .  .  .  .  .  ¨  z  @  .  .  .  .  .  .  .  .  .  —  È  A  .  ‘  Å  A  .  -  Z  A  .
#  ±  @  .  ±  ä  @  .  »  ä  @  .  l  `  B  .  ÷  ñ  @  .  Z  <  ÷  v  œ  ±  ü  v  Î  W  ù  v
(  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  €  .  *  æ
€  €  €  €  €  €  €  €  à  ›  ó  ~  €  €  €  €    â  Õ  .  €  €  €  €  .  .  .  .  !  ¬  ñ  ~
.  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  —  È  A  .  ‘  Å  A  .  -  Z  A  .
l  `  B  .  J  ö  @  .  Z  <  ÷  v  œ  ±  ü  v  Î  W  ù  v  Ó  <  ÷  v  Ó  <  ÷  v  þ  <  ÷  

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

4

0 に答える 0