Я сказал бы, что будет невероятно неблагоразумно решить произвольно против нескольких точек выхода, поскольку я нашел, что техника полезна на практике много раз , на самом деле я часто имею , осуществил рефакторинг существующий код к нескольким точкам выхода для ясности. Мы можем выдержать сравнение, два 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;
}
, я думаю, что последний значительно более ясен. Насколько я могу сказать, что критика нескольких точек выхода является довольно архаичной точкой зрения в эти дни.
Внутренняя версия FastMM для Delphi не поддерживает трассировку стека.
Если вы хотите регистрировать трассировку стека утечки памяти, вам необходимо:
загрузить полную версию Библиотека FastMM
включает его в качестве первого модуля в ваш проект:
программа YourProject;
использует
FastMM4, // <-
SysUtils,
Формы,
...
включить параметр FullDebugMode
в FastMM4Options.inc
установить файл сопоставления на Подробно в параметрах связывания проекта ( FastMM_FullDebugMode.dll
обрабатывает файл .map
)
добавляет FastMM_FullDebugMode.dll
в двоичный каталог (или Windows System32
) каталог
Кроме того, Франсуа Гайяр представил на CodeRage II сессию под названием «Борьба с утечками памяти для чайников», посвященную FastMM. Он указан под повторами CodeRage II в четверг, 29 ноября 2007 г., с 9.45 до 10:45.
http://edn.embarcadero.com/article/37498
С уважением, Эрвин
Вы также можете попробовать программу настройки параметров FastMM4 от Джереми Норта. Это немного проще, чем редактировать файл inc FastMM4Options.inc напрямую. Вот ссылка:
Вы также можете увидеть this и this для более подробного описания, чем ответ ulrichb.
И не забудьте включить опцию «Использовать отладочные DCU» ;)