powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Leaks XX-XX bytes UnicodeString xX
7 сообщений из 7, страница 1 из 1
Leaks XX-XX bytes UnicodeString xX
    #40134026
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня!

в некоторых программах есть утечки со ссылкой на UnicodeString.
Например:
39 - 36 bytes UnicedeString x 2

Программы как таковые на юникод не переведены.
Не совсем понятно как таковые могут возникать.
Утечки вроде не большие и можно было бы плюнуть на них но хочется понять как таковые возникают применительно именно к UnicodeString.

Спасибо если кто разьяснит или пример подскажет.
...
Рейтинг: 0 / 0
Leaks XX-XX bytes UnicodeString xX
    #40134031
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подключи fastmm4, выстави нужные опции в fastmm4.inc, собери проект с отладочной информацией, запусти, закрой, смотри лог - там №№ строк будут, в которых создавались утекающие объекты.
...
Рейтинг: 0 / 0
Leaks XX-XX bytes UnicodeString xX
    #40134046
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Легко: достаточно, чтобы "деструктор" строки не вызывался.

Это может быть как явным пропуском:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
type
  TRec = record
    S: String;
  end;
  PRec = ^TRec;

var
  R: PRec;
begin
  New(R);
  R.S := IntToStr(42);
  FreeMem(R); // - "деструктор" пропускается
end;



Так и работой со строкой вне её области видимости:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
type
  TObj = object
    S: String;
  end;

var
  O: TObj;
begin
  O := TObj.Create;
  O.Free;
  O.S := IntToStr(42); // - "деструктора" нет
end;
...
Рейтинг: 0 / 0
Leaks XX-XX bytes UnicodeString xX
    #40134086
hlopotun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А во втором случае разве не должно возникнуть исключение? Обьекта уже по идее нет. Или отработает по тому что осталось в памяти получается.
...
Рейтинг: 0 / 0
Leaks XX-XX bytes UnicodeString xX
    #40134105
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hlopotun,

Не всегда. Этим и отличаются языки с самостоятельным управлением памятью.
...
Рейтинг: 0 / 0
Leaks XX-XX bytes UnicodeString xX
    #40134161
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключи FastMM5 или madExcept, или EurekaLog и посмотри, что создается и не уничтожается.
Это не обязательно могут быть именно переменные String. Может ты забываешь уничтожать, например, TStringList или еще что-то, связанное со строками.
...
Рейтинг: 0 / 0
Leaks XX-XX bytes UnicodeString xX
    #40134180
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11,

что хошь может быть. Вон, SuperObject внутри юникодные строки использует, даже в неюникодных дельфях. Криво прибили интерфейс - вот и утечка.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Leaks XX-XX bytes UnicodeString xX
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]