Форум: "Прочее";
Текущий архив: 2017.09.17;
Скачать: [xml.tar.bz2];
ВнизСтранное поведение отладчика Найти похожие ветки
← →
dmk © (2016-06-09 01:39) [0]Когда отлаживаешь цикл и точку останова ставишь на for i := 0 to X do,
то i почему то равно единице. Это глюк или настраивается? Как-будто отладчик пропускает нулевую позицию. Если ставить внутри begin end, то все нормально. Или это просто особенности/странности к которым нужно привыкнуть?
← →
Германн © (2016-06-09 01:55) [1]Это и не глюк и не настраивается до сих пор. Судя по твоему вопросу. Отладчик испокон веков не умел грамотно показывать значение переменной цикла.
← →
Германн © (2016-06-09 02:08) [2]Хотя если выключить оптимизацию, то вроде проблем с отладчиком быть не должно.
← →
Юрий Зотов © (2016-06-09 04:47) [3]> Когда отлаживаешь цикл и точку останова ставишь на
> for i := 0 to X do
> то i почему то равно единице
Попробую угадать: при этом оптимизация включена и Х = 1 ?
← →
KSergey © (2016-06-09 09:23) [4]А я бы так стелепатировал:
> точку останова ставишь на for i := 0 to X do, то i почему то равно единице.
> Если ставить внутри begin end, то все нормально.
Может всё дело в том, что на момент остановки на строке for i := 0 to X do собственно цикл еще не начал выполняться и переменная i не инициализирована начальным значением цикла (содержит мусор)?
← →
sniknik © (2016-06-09 10:30) [5]более оптимальны циклы от большего к меньшему, поэтому и код оптимизатор приводит к такому, если конечно переменная цикла не участвует в расчетах внутри цикла (т.е. когда оптимизатор определяет, что порядок от меньшего к большему важен).
← →
sniknik © (2016-06-09 10:31) [6]> более оптимальны циклы
вернее там не сам цикл, а проверка выхода из него
← →
KSergey © (2016-06-09 10:42) [7]И всё же: разве в момент остановки на строке
for i := 0 to X do
переменная i уже инициализирована начальным значением цикла?
← →
ttUser © (2016-06-09 12:11) [8]ну это в Delphi 7 глюк был, что показывался "истинный" счетчик ссылок, который бегает при оптимизированном коде сверху вниз.
Потом это поправили, но оставили глюк типа:
MyList[i].MyProperty
Когда MyProperty показывался от опять же истинного счетчика.
В XE вроде всё это поправлено.
← →
dmk © (2016-06-09 14:12) [9]>Юрий Зотов © (09.06.16 04:47) [3]
Оптимизация выключена.
>KSergey © (09.06.16 09:23) [4]
Без понятия, потому и спрашиваю.
Не важно от какого числа идет цикл. Компилятор единицу прибавляет. Т.е. он первый проход «съедает».
Вот 2 разных варианта:
http://hostingkartinok.com/show-image.php?id=da9bf12ea624c2e4c6ae6d275ed5b919
Если внутри begin..end BP поставить, то все нормально.
Delphi XE6 prof.
← →
dmk © (2016-06-09 14:18) [10]Не то чтобы сильно напрягает, но все же — зачем и почему ??? :)
Просто с толку сбивает.
Кстати во FreePascal также сделано:
http://hostingkartinok.com/show-image.php?id=b76f1f9f62367e7bd733c6e9b0210f1b
Видимо я что-то не понимаю или это с оптимизацией кода связано.
В общем я в растерянности :)
← →
KSergey © (2016-06-09 15:33) [11]> dmk © (09.06.16 14:12) [9]
> Не важно от какого числа идет цикл. Компилятор единицу прибавляет.
> Т.е. он первый проход «съедает».
Как это пропускает? ты же пишешь, что
> Если ставить внутри begin end, то все нормально.
т.е. по факту i принимает нужное значение. Или в вычислениях тоже пропуск?
← →
dmk © (2016-06-09 15:39) [12]>ты же пишешь, что
Также пишу:когда точку останова ставишь на for i := 0 to X do
С вычислениями порядок. Внутри блока отлавливает.
← →
Inovet © (2016-06-09 15:48) [13]На этой строке присваивания i ещё не дожно быть было. И смотри про оптимизацию выше.
Так что - F8 нажимаешь и всё равно не то значение?
← →
NoUser © (2016-06-09 16:04) [14]XE-8, DX-S, DX-B http://hkar.ru/J4lW
FPC3.0-Lazarus 1.6 http://hkar.ru/J4lX
← →
dmk © (2016-06-09 16:14) [15]>Так что - F8 нажимаешь и всё равно не то значение?
На строчке for - не то. Внутри блока правильное.
← →
Inovet © (2016-06-09 18:52) [16]> [15] dmk © (09.06.16 16:14)
> На строчке for - не то. Внутри блока правильное.
Ну, тогда и проблемы нет.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2017.09.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c