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

Вниз

Может кто-нибудь знает что происходит   Найти похожие ветки 

 
paxpet   (2010-04-14 10:29) [0]

с моим Delphi 2010 (или может это я уже сам трёхнулся от перенапряжения, или что-то нажал и теперь не пойму что)?
До поры до времени всё было хорошо. Методично и благополучно осваивал Делфи.
И вдруг  во время отладки замечаю, что отладчик (при нажатии F8)  игнорирует переменные типа integer и byte. То есть просто перескакивает эти строки и когда ставишь на этих строках точку входа для отладчика, то он считает её ошибочной. При этом всё остальное он видит (в том числе и строковые переменные). Я пытался найти причину  в настройках, но ничего не нашёл. Тогда переустановил Делфи с подчисткой в реестре и в файлах. И опять не помогло. Я уже думаю, может так и должно быть? Но ведь помню, что ещё пару дней назад такой гадости не было! А-а, друзья мои! Помогите не попасть в дурдом с нервным растройством. Только не надо критиковать, а то у меня итак плохое настроение...


 
И. Павел ©   (2010-04-14 10:40) [1]

Может быть код оптимизирует?


 
paxpet   (2010-04-14 10:47) [2]

Павлу!
А как такую оптимизацию отключить?


 
И. Павел ©   (2010-04-14 10:51) [3]

Где-то в свойствах проекта. В Delphi7 это compiler->code generation->optimization.


 
И. Павел ©   (2010-04-14 10:54) [4]

Еще можно добавить в начале отлаживаемого файла:
{$OPTIMIZATION OFF}


 
Amoeba_   (2010-04-14 11:22) [5]


> {$OPTIMIZATION OFF}

То же самое, но короче:
{$O-}


 
tesseract ©   (2010-04-14 12:13) [6]


> А-а, друзья мои! Помогите не попасть в дурдом с нервным
> растройством.


А ты уверен, что эти переменные в коде используются? Оптимизатор их выкинул и всё. Например, если как счетчики используются.


 
Дмитрий Белькевич   (2010-04-14 12:21) [7]

Блоки "with" не встречаются по коду случайно?


 
Плохиш ©   (2010-04-14 12:24) [8]

... и начали расчехлять телепаторы ...


 
Anatoly Podgoretsky ©   (2010-04-14 12:30) [9]

> tesseract  (14.04.2010 12:13:06)  [6]

Действительно, не все ли равно, если программа правильно работает.


 
brother ©   (2010-04-14 13:03) [10]

> когда ставишь на этих строках точку входа для отладчика,
> то он считает её ошибочной

или игнорируемой?


 
Дмитрий Белькевич   (2010-04-14 15:32) [11]


>  То есть просто перескакивает эти строки и когда ставишь
> на этих строках точку входа для отладчика, то он считает
> её ошибочной


Увидел. Не with. Телепатор не сработал :) Скорее всего оптимизация.


 
paxpet   (2010-04-14 17:18) [12]

Всем посочувствовавшим большое спасибо!
Да, тут что-то с оптимизацией!
Ну я уже свой проект отложил и просто в качестве теста делал элементарные вещи: объявлял в кнопке 2-3 переменные и в её блоке (Begin-End) просто присваивал им значения.
По вашему совету я в начале модуля поставил {$O-}.... И всё заработало! Когда убрал эту функцию, опять начились пропуски переменных.
Но ведь раньше {$O-} я не применял и всё работало без проблем!
Я попробовал по вашему совету отключить оптимизацию в настройках.
То есть нажал ПКМ на проект. Затем Options>Compilling>Optimization= false.
Но это не действует!
Что же мне теперь каждый раз вручную вводить {$O-}.
Согласитесь, это как-то странно?


 
Германн ©   (2010-04-14 17:29) [13]


> Согласитесь, это как-то странно?
>

Не соглашусь. Если переменную удаляет оптимизатор, значит переменная для работы алгоритма не нужна.


 
paxpet   (2010-04-14 17:41) [14]

Видимо вы правы.
Пора мне пойти расслабиться.
Иногда полезно делать перерывы.
Спасибо за ваши советы. Они мне очень помогли.


 
AlexDan ©   (2010-04-16 03:04) [15]

> paxpet   (14.04.10 17:18) [12]
> Но это не действует!
> Что же мне теперь каждый раз вручную вводить {$O-}.
> Согласитесь, это как-то странно?
однозначно дело в программе.. или обьявлнные переменные не используются, или неправильно построенные блоки (наверняка информация о переменных будет выводится в отладке, но компилироваться будет без проблем).. такая маячня обычно происходит при использовании глобальных переменных. такие вещи хорошо в D7 видны, в D10 действительно сложно увидеть/понять что-то)..


 
AlexDan ©   (2010-04-16 03:34) [16]

Даже точнее могу сказать - переменная описна, используется в расчетах но потом не прибавляется отнимается к какому либо дальнейшему результату и никуда не выводится /печать,эдит и т.п./ соответственно компиллятором отсекается и игнорируется.. можно было делфи не мучать..).


 
Германн ©   (2010-04-16 04:53) [17]

Удалено модератором


 
Лукошко   (2010-04-16 11:23) [18]

Удалено модератором


 
MonoLife ©   (2010-04-16 17:16) [19]


> AlexDan ©   (16.04.10 03:34) [16]

или где-то используется break, exit..


 
Кто б сомневался ©   (2010-04-17 17:36) [20]

Скинь код на котором оптимизирует компилятор. Ты что-то там намудрил. Все дело в тебе.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.197 c
2-1273044743
SergaDe
2010-05-05 11:32
2010.08.27
BDE Paradox странное


2-1273728307
Irisss
2010-05-13 09:25
2010.08.27
вкладка Data Explorer


2-1273755318
_guest_
2010-05-13 16:55
2010.08.27
впечатать содержимое RichEdit в произвольное место листа


15-1274076594
Anatoly Podgoretsky
2010-05-17 10:09
2010.08.27
Выбор писалки DVD


2-1273042460
'<>
2010-05-05 10:54
2010.08.27
Как преобразовать 30 байт в число и обратно?