Как использовать FastMM в XE7 C++ Builder для проектов FireMonkey?

Я пытаюсь использовать режим полной отладки FastMM в XE7 C++ Builder, особенно для FireMonkey. Я скачал исходный код и следовал инструкциям, изложенным в "FastMM4BCB.cpp". Чтобы получить компиляцию FastMM, я внес следующие изменения:

  1. закомментируйте строку 63 в 'FastMM4BCB.cpp', а именно:#pragma option -k- -d -vi- -O2 -b- -3 -a8 -pc -RT- -x -xd -r -AT -vG- -vG0- -vG1- -vG2- -vG3- -vGc- -vGt- -vGd-
  2. в файле моего проекта добавьте строку: #pragma link "FastMM4BCB" вместо (как описано в "FastMM4BCB.cpp") USEOBJ ("FastMM4BCB.cpp")

С этими изменениями FastMM компилируется и запускается успешно. Тем не менее, он сообщает об утечках памяти даже на пустых проектах (я пробовал FireMonkey и VCL) следующим образом:

  1. 13-20 байт: неизвестно x 8
  2. 61-68 байт: неизвестно x 1
  3. 189 - 204 байта: неизвестно x 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 возникает (в режиме полной отладки) ошибка нарушения доступа, когда приложение закрывается по шаблону адреса 0x80, как отмечено FastMM. Любая идея, как заставить это работать для FireMonkey и удалить эти ложные положительные предупреждения на пустых проектах? Спасибо

0 ответов

Другие вопросы по тегам