Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор / 25 сообщений из 49, страница 1 из 2
19.12.2019, 11:47
    #39905362
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Доброго дня.
Уважаемые, помогите советом.
Столкнулся с такой парадоксальной проблемой в Delphi 7. Открыл одну форму старого проекта. Форма чрезвычайно перегружена вкладками, гридами, датасетами. Всего задекларировано на форме 2097 объектов. И в модуле километры кода. Нужно было добавить еще один обработчик.
Случайно обнаружил, что при компиляции часть кода помечается как «неиспользуемый» - не ставятся «синие точки» слева (неверно! код гарантированно выполняемый!) и не работают точки останова. При чем, на «неиспользуемой» строке предсказуемо красная строка точки останова становится зеленой, а на строке кода, которую компилятор пометил как «используемую» (синяя точка стоит), точка останова ставится (красная), но в момент выполнения на ней программа не останавливается.
При этом, в обоих случаях программный код благополучно выполняется!!

Итого две проблемы:
1. В момент компиляции неверно определяется «исполняемая/неисполняемая» строка программного кода
2. Нигде и не при каких условиях не работают точки останова
Замечу, что в остальных формах проекта таких проблем нет.

Далее было долгое и мучительное ковыряние причин. Было предположение, что где-то в каком-то куске кода проблемы, может быть какой-то спец-символ стоит и ведет Дельфю к неадекватности.

В итоге пришли к такой картине –
Весь, абсолютно весь программный код был удален.
Оставлен только:
procedure TXXXForm.FormCreate(Sender: TObject);
begin
showmessage('!!');
end;

на showmessage стоит точка останова и она НЕ работает. Тупик.

Далее абсолютно случайно был удален один очень «тяжелый» cxGrid, содержащий в себе десяток левелов с ДиБиТайблВьюхами в каждой из которых около 30 колумнов, компиляция, запуск и…. точка останова сработала.

Далее, после очень большого количества экспериментов пришел к выводу – виной всему количество объектов на форме. Произвольное удаление ЛЮБЫХ объектов в существенном объеме приводит к тому, что точка останова начинает работать корректно.

Был удивлен таким положением дел.

Уважаемые, что скажите? Как побороть?
Заранее – спасибо.
...
Рейтинг: 0 / 0
19.12.2019, 11:48
    #39905366
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Ребилд проекта сделайте.
Предварительно удалите все DCU.
...
Рейтинг: 0 / 0
19.12.2019, 12:05
    #39905398
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Прохор,

Открыть исходник в Notepad++, поменять концы строк сначала на Unix (LF), потом на Windows (CR LF), сохранить исходник.
После этого проверьте.

P.S: Я надеюсь вы сообразили сделать резервную копию проекта перед всеми экспериментами? :)
...
Рейтинг: 0 / 0
19.12.2019, 12:24
    #39905420
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Гаджимурадов Рустам,
не помогло ((
...
Рейтинг: 0 / 0
19.12.2019, 12:34
    #39905428
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Прохор
Гаджимурадов Рустам,
не помогло ((

Точки останова расположенные не в тех местах говорят о том, что текстовый код и скомпелированный с DCU отличаются. То есть DCU цепляются с другого места
...
Рейтинг: 0 / 0
19.12.2019, 12:34
    #39905429
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Приложи проект архивом (сторонние либы используются) ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.12.2019, 12:39
    #39905434
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
alekcvp,
не помогло ((

Гаджимурадов Рустам
постараюсь сделать отдельный маленький проектик с одной этой формой и выложу. чуть позже.

Еще раз подчеркну главный момент -
я не вношу никаких изменений, просто удаляю с формы произвольные компоненты с формы и все работает.

мне кажется это ключевое. но могу и ошибаться.
...
Рейтинг: 0 / 0
19.12.2019, 12:39
    #39905437
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
ПрохорБыл удивлен таким положением дел.А таким кол-вом кода и объектов не удивлен ?
...
Рейтинг: 0 / 0
19.12.2019, 12:45
    #39905448
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
L_argo
ПрохорБыл удивлен таким положением дел.
А таким кол-вом кода и объектов не удивлен ?
никогда и нигде не встречал инфы, что есть какие-либо подобные ограничения
...
Рейтинг: 0 / 0
19.12.2019, 12:52
    #39905458
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
DimaBr
Прохор
Гаджимурадов Рустам,
не помогло ((

Точки останова расположенные не в тех местах говорят о том, что текстовый код и скомпелированный с DCU отличаются. То есть DCU цепляются с другого места

Чаще встречалось из-за того что код откуда-то копировался и вставлялись нестандартные концы строк.
И тогда у компилятора "съезжали" номера строк, относительно редактора. Т.е. где-то в коде точек не было, а где-то они были на неисполняемых строках, типа procedure blabla...
...
Рейтинг: 0 / 0
19.12.2019, 12:55
    #39905465
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Создайте новый проект, скопируйте в него вашу "тяжёлую" форму, сохраните в отдельную папочку и компельните.
...
Рейтинг: 0 / 0
19.12.2019, 13:03
    #39905476
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Вот, кому интересно.
Во вложении тестовый мини- проектик, с одной этой формой. Все помаксимому вырезал и лишнее убрал.
Нужна devexpress библиотека.
...
Рейтинг: 0 / 0
19.12.2019, 13:15
    #39905497
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Toolbar2000 ?
...
Рейтинг: 0 / 0
19.12.2019, 13:17
    #39905501
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
DimaBr
Toolbar2000 ?

да, про него забыл.

Toolbar2000 + DevExpress. Больше, кажется, ничего нет.
...
Рейтинг: 0 / 0
19.12.2019, 13:33
    #39905509
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Выкинул T2000
...
Рейтинг: 0 / 0
19.12.2019, 13:44
    #39905520
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
DimaBr,
с удаленным тулбаром у меня аналогично (см.вложение).
Такого же результата добиваюсь, если с формы произвольно удалить несколько любых других объектов.

В том виде, что выложил в архиве, т.е. без удаления тулбара либо любых других объектов - результат как в первом сообщении.
...
Рейтинг: 0 / 0
19.12.2019, 13:47
    #39905524
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Такое ощущение, что кто-то лохматит бабушку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.12.2019, 13:53
    #39905526
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Гаджимурадов Рустам,
???

мне сделать видео с экрана?
...
Рейтинг: 0 / 0
19.12.2019, 13:55
    #39905529
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Прохор
В том виде, что выложил в архиве, т.е. без удаления тулбара либо любых других объектов - результат как в первом сообщении.

Ваш архив подразумевает установку T2000, коего у меня нет.
Очень сомневаюсь, что удаление ТВ может повлиять на компиляцию.
Видал формы и поболее, которые прекрасно компиляются.
Некорректные точки останова встречал только из-за неправильного подхватывания DCU.
...
Рейтинг: 0 / 0
19.12.2019, 13:55
    #39905530
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Ну проверьте пути каталогов в опциях проекта.
И добавьте что-нибудь ненужное на форму - label, кнопку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.12.2019, 13:59
    #39905533
vavan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
DimaBr
прекрасно компиляются
как я понял с компилом, сборкой и выполнением проблем нет а рвет кепку долбаггеру в среде
...
Рейтинг: 0 / 0
19.12.2019, 14:01
    #39905537
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
DimaBr,
Проект компилится и запускается с тулбаром и без него!
Вопрос только в том - работает или нет точка останова.
Удаление тулбара (который содержит большое количество элементов) в данном случае эквивалентно удалению, допустим одного или двух гридов.
Т.е. кол-во объектов на форме уменьшается, точка останова появляется.
Сейчас постараюсь сделать видео с экрана (только без звука)
...
Рейтинг: 0 / 0
19.12.2019, 14:11
    #39905546
Прохор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
YouTube Video
...
Рейтинг: 0 / 0
19.12.2019, 14:29
    #39905571
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Прохор

Удаление тулбара (который содержит большое количество элементов) в данном случае эквивалентно удалению, допустим одного или двух гридов.

Удалите тулбар и добавьте пару сотен Хранимых процедур, чтобы количество компонентов не уменьшалось
...
Рейтинг: 0 / 0
19.12.2019, 14:31
    #39905573
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор
Для чистоты эксперимента, переименуйте форму и сохраните под новым именем
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi 7. На "тяжелой" форме не работают точки останова, некорректно ведет себя компилятор / 25 сообщений из 49, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]