Главная страница
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.009 c
14-32328
Abajun
2001-12-21 13:35
2002.02.11
Документ word


3-32171
Andrey007
2002-01-15 09:51
2002.02.11
Direct Oracle Access.


1-32282
Bodia
2002-01-20 19:42
2002.02.11
WebBrowser


14-32321
Sir Kot-Werwolf
2001-12-19 23:30
2002.02.11
Edit с цветным текстом...


4-32365
yuger
2001-11-12 16:45
2002.02.11
Не удается в Win2000 отключить некоторые комбинации клавиш.