Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-32263
XX
2002-01-28 11:15
2002.02.11
Как ввести символ програмно.


1-32208
Вовчик
2002-01-25 21:43
2002.02.11
Ошибка в вычислениях


1-32201
Oleg Fomicheff
2002-01-18 13:44
2002.02.11
Помогите с алгоритмом


1-32207
ogu
2002-01-23 19:41
2002.02.11
Microsoft Word


14-32349
Andrey196
2001-12-21 02:12
2002.02.11
СПАСИТЕ ОТ ОТЧИСЛЕНИЯ НУЖНА САМАЯ ПРОСТАЯ ПРОГА для ШИФРОВАНИЯ и ДЕШИФРОВАНИЯ СТРОКИ ТЕКСТА





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский