Как получить отслеживание стека от FastMM

Я сказал бы, что будет невероятно неблагоразумно решить произвольно против нескольких точек выхода, поскольку я нашел, что техника полезна на практике много раз , на самом деле я часто имею , осуществил рефакторинг существующий код к нескольким точкам выхода для ясности. Мы можем выдержать сравнение, два thus:-

string fooBar(string s, int? i) {
  string ret = "";
  if(!string.IsNullOrEmpty(s) && i != null) {
    var res = someFunction(s, i);

    bool passed = true;
    foreach(var r in res) {
      if(!r.Passed) {
        passed = false;
        break;
      }
    }

    if(passed) {
      // Rest of code...
    }
  }

  return ret;
}

подходов Сравнивают это с кодом, где несколько точек выхода permitted:-

string fooBar(string s, int? i) {
  var ret = "";
  if(string.IsNullOrEmpty(s) || i == null) return null;

  var res = someFunction(s, i);

  foreach(var r in res) {
      if(!r.Passed) return null;
  }

  // Rest of code...

  return ret;
}

, я думаю, что последний значительно более ясен. Насколько я могу сказать, что критика нескольких точек выхода является довольно архаичной точкой зрения в эти дни.

17
задан Community 23 May 2017 в 12:32
поделиться

4 ответа

Внутренняя версия FastMM для Delphi не поддерживает трассировку стека.

Если вы хотите регистрировать трассировку стека утечки памяти, вам необходимо:

  • загрузить полную версию Библиотека FastMM

  • включает его в качестве первого модуля в ваш проект:

     программа YourProject;
    
    использует
     FastMM4, // <-
     SysUtils,
     Формы,
     ...
    
  • включить параметр FullDebugMode в FastMM4Options.inc

  • установить файл сопоставления на Подробно в параметрах связывания проекта ( FastMM_FullDebugMode.dll обрабатывает файл .map )

  • добавляет FastMM_FullDebugMode.dll в двоичный каталог (или Windows System32 ) каталог

40
ответ дан 30 November 2019 в 10:27
поделиться

Кроме того, Франсуа Гайяр представил на CodeRage II сессию под названием «Борьба с утечками памяти для чайников», посвященную FastMM. Он указан под повторами CodeRage II в четверг, 29 ноября 2007 г., с 9.45 до 10:45.

http://edn.embarcadero.com/article/37498

С уважением, Эрвин

5
ответ дан 30 November 2019 в 10:27
поделиться

Вы также можете попробовать программу настройки параметров FastMM4 от Джереми Норта. Это немного проще, чем редактировать файл inc FastMM4Options.inc напрямую. Вот ссылка:

Сообщение в блоге об интерфейсе FastMM4

7
ответ дан 30 November 2019 в 10:27
поделиться

Вы также можете увидеть this и this для более подробного описания, чем ответ ulrichb.

И не забудьте включить опцию «Использовать отладочные DCU» ;)

3
ответ дан 30 November 2019 в 10:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: