Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.11;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
6-32304
vvr
2001-11-21 14:11
2002.02.11
сети


4-32367
AndrewInc
2001-12-13 16:58
2002.02.11
Помогите скрыть программу спанели задач.


1-32185
Stormick
2002-01-28 23:35
2002.02.11
Помогите плиз


1-32206
kuban
2002-01-26 09:34
2002.02.11
VCL


1-32217
Do№
2002-01-24 19:27
2002.02.11
Изменение регистра символов