Форум: "Основная";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];
ВнизDebug & properties evaluation Найти похожие ветки
← →
oomneeq (2002-01-18 18:57) [0]А по русски - дебугер может отображть значение пропертей
(в Watch,Evaluate и мышкой при наведении в исходнике)
Насколько корректно он себя ведет в случае когда получения значения проперти сопряжено с созданием объекта.
Создает?!
Если да, то это может оказываться совсем не кстати.
type YYY=class
....
function YYY.GetXXX:TComponent;
begin
if not Assigned (FXXX)
then FXXX:=TComponent.Create(...);
end;
.....
property XXX: TComponent; read GetXXX;
...
end;
Я вот так и не осознал, но сдается мне, с этим у него нечисто..
У меня один такой FXXX был не нилом (причем непросто не нилом, а очень похоже,что корректно созданым (Debugger"ом, как я теперь подозреваю, т.к. XXX вероятно торчала в окне Watch где то выше от FXXX)) уже в на begin"e YYY.Create.
Я так неуверенно, потому что ситуацию уже не воспроизводил, а по памяти излагаю. А мысль пришла с запозданием :-)
Какие наблюдения и/или опыт у вас?
← →
paul_shmakov (2002-01-19 04:05) [1]абсолютно все верно. дебагер вызовет функцию GetXXX для получения значения свойства, а уж что GetXXX сделает для возврата значения - это ее дело. пусть хоть с банком через интернет соединяется и состояние счета получает :) все честно.
← →
oomneeq (2002-01-19 08:30) [2]Дела интересные конечно.
Только что не поленился, проверил по простому - в GetXXX
cчетчик наращивать.
Пускаю дебагер,
навожу мышкой на XXX раз - в счетчике - единичка
убираю,навожу мышкой два - двойка
Заношу в Watch - уже тройка.
Нехорошо это - не должон бы отладчик влиять на данные без ведома
отлаживающего.
Я бы сделал эту возможность опциональной.
Так что парни, поосторожнее с отладкой пропертей!
← →
paul_shmakov (2002-01-20 02:24) [3]Я бы сделал эту возможность опциональной.
а эта возможность и так опциональна :)
Editor Options\Code Insight\Tooltip Expresion Evalution
Нехорошо это - не должон бы отладчик влиять на данные без ведома
отлаживающего.
а как же ему иначе работать? за удобство приходится платить повышенным вниманием
← →
oomneeq (2002-01-20 21:58) [4]Я говорил про возможность вычисления значения пропертей на дебуге
ведь именно эта возможност потенциально опасна тем что можете менять данные программы без явного выполнения кода (например, программа стоит в точке останова) - т.е. твой код выполняется самим же отладчиком изподтишка, в то время как программа стоит.
И такое выполнение ты уже не отладишь!
Я б хотел иметь возможность это отключать, хотя допускаю что это может быть иногда удобным.
← →
vedmed (2002-01-21 09:06) [5]"возможность вычисления значения пропертей на дебуге" устанавливается в Tools\Debugger options\General\Allow function calls in new watches
← →
oomneeq (2002-01-28 18:56) [6]>"возможность вычисления значения пропертей на дебуге"
>устанавливается в Tools\Debugger options\General\Allow function
>calls in new watches
Похоже на то, но однако же не оно.
Во всяком случае у меня эта птица не включена, а все вышеописанное происходит.
Думаю, что эта установка влияет на
повторный вызов функции, т.е. для каждого нового занесения исследуемого значения в Watch.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c