Обнаружение утечек памяти с помощью FastMM и кода выхода - PullRequest
3 голосов
/ 13 января 2010

У меня есть идея включить запись сообщений FastMM в ночной автоматической сборке. Окно сообщений, конечно, должно быть отключено. Наиболее простым было бы, если бы код выхода приложения был> 0, если была утечка памяти. Я сделал быстрый тест, и код выхода был 0 с memleak и FastMM.

Итак, мой вопрос: как я могу определить наличие утечки памяти в FastMM для установки кода выхода?

Ответы [ 2 ]

4 голосов
/ 13 января 2010

Для моего предыдущего проекта Delphi я использовал MemCheck.Он создал текстовый файл журнала со всеми обнаруженными утечками.Мне нравится такой способ отчетности, и я вижу, что у FastMM есть возможность создать такой файл: в FastMM4Options.inc есть LogErrorsToFile.Таким образом, вам нужно проверить файл журнала и не проверять код выхода.

2 голосов
/ 04 апреля 2012

Я изменил "процедуру CheckBlocksOnShutdown (ACheckForLeakedBlocks: Boolean);" для моего текущего клиента, чтобы установить код выхода, чтобы я мог легко проверить в DUnit, если у порожденного процесса была утечка памяти. Я добавил строку в конце процедуры:

  ...
  {$ifdef UseOutputDebugString}
  OutputDebugStringA(LLeakMessage);
  {$endif}
  ExitCode := 1;     <-- added this one
  if Assigned(OnMessage) then
    OnMessage(LLeakMessage);
  ...
...