Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Глюк расстановки мест под точки останова. [D7, WinXP]


msn777 ©   (2006-08-18 20:29:00) 

Иногда Delphi не правильно связывает откомпилированный код с исходным кодом, например тело процедуры (begin) начинается в строке 100, а при отладке Delphi начинает ее отлаживать со строки 90, где просто объявляются переменные или вообще располагается закомментированое описание этой процедуры. При этом программа работает вроде правильно, но отлаживать такую прогу крайне не удобно, так как все места под точки останова не соответствую исходному коду, не работает Find Declaration и т.д.
Такое происходило крайне редко, обычно только в одном модуле, хотя во всех остальных может быть нормально, пока закономерность не выявил. Пробовал на разных машинах и с разными версиями Delphi (7 и 2006) везде глюк присутствует. Отключение оптимизации не помогает, отладочная информация подключена. Проект находится в папке без русских символов.
В качестве примера (где этот глюк наблюдается) взял компонент XP Menu ver 3.1 ( http://www.shagrouni.com/english/software/xpmenu.html / скачать можно тут: http://www.shagrouni.com/download/xpmenu.zip (62 КБ)).

Может, кто сталкивался с этой проблемой и знает, как ее лечить.
Спасибо.

Screenshot’ы глюка (обратите внимание на синие точки (место под точки останова) которые стоят напротив комментариев):
http://www.usb-osc.kiev.ua/delphi/d2006_1.png
http://www.usb-osc.kiev.ua/delphi/d2006_2.png
http://www.usb-osc.kiev.ua/delphi/d7_1.png


Desdechado   (2006-08-21 15:31:00) [1]

Еще такое бывает, если в коде стоят директивы условной компиляции {$IFDEF} и т.п. Тогда куски кода в тексте остаются, а вот отладочная информация о номерах строк сбивается...


msn777   (2006-08-21 15:00:00) [2]

Всем спасибо за ответы.
На выходных докопался до истины. Действительно глюк был обусловлен из-за того что в исходниках были непечатные символы типа $0d0d … После того как код скопировал в Word, а затем обратно в Delphi все заработало.


DrPass   (2006-08-19 10:20:00) [3]


> В ситуации описанной в [1] - не поможет

Не поможет, конечно. Но намного чаще такой глюк возникает, когда в Delphi отчего-то происходит рассинхронизация прекомпилированного модуля в памяти и исходника


Германн   (2006-08-19 00:45:00) [4]


> DrPass ©   (19.08.06 00:41) [3]
>
>
> > Может, кто сталкивался с этой проблемой и знает, как ее
> > лечить
>
> Сделать Build, например
>

В ситуации описанной в [1] - не поможет.


DrPass   (2006-08-19 00:41:00) [5]


> Может, кто сталкивался с этой проблемой и знает, как ее
> лечить

Сделать Build, например


Германн   (2006-08-19 00:30:00) [6]


> guav ©   (18.08.06 21:23) [1]
>
> Такое бывает, когда вместо конца строки CRLF (#13#10) применяются
> другие последовательности символов обозначения конца строки,
>  такие как #13 , #10 и #10#13
>

Ага. И происходило это в результате Copy-Paste из неких документов типа хэлпа. :-)


guav   (2006-08-18 21:23:00) [7]

Такое бывает, когда вместо конца строки CRLF (#13#10) применяются другие последовательности символов обозначения конца строки, такие как #13 , #10 и #10#13


Наверх

Титульная страница Поиск, карта сайта Написать письмо