powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Отладка стандартных модулей VCL / RTL
13 сообщений из 13, страница 1 из 1
Отладка стандартных модулей VCL / RTL
    #40135138
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь решал вопрос отладки стандартных модулей (например Forms.pas) при условиях:
1. Используется Delphi 2007
2. Приложение скомпилено с BPL-пакетами.

Это реально? Если да, то как? Нагуглить ничего не получилось, максимум, что удалось нарыть: "это реально", но без подробностей.
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135143
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ставь птицу в опциях компиляции "Use Debug DCU"
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135151
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
Кто-нибудь решал вопрос отладки стандартных модулей (например Forms.pas) при условиях:
1. Используется Delphi 2007
2. Приложение скомпилено с BPL-пакетами.

В D2007 для .bpl поставляются .jdbg, которые отладчик понимает, так что по плану должно работать. Если не работает - это какая-то проблема, её надо искать.

Мимопроходящий
ставь птицу в опциях компиляции "Use Debug DCU"

Эта опция не имеет эффекта для BPL.
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135189
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker,

JCL / JVCL обязательно для этого должны быть установлены? Через них выполняется разбор jdbg?
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135194
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, они есть в IDE для отладчика.
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135418
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker,

так как отладить BPL?
Создаю пустой проект VCL, ставлю галку "build with runtime packages"
Нужно ли ставить какие-нибудь дополнительные флаги в разделе "compiler" или "linker"?
В разделе "compiler" есть галка "Use debug DCUs". Но она здесь ничем не помогает. А галки "Use debug jdbg" там нет.
Нужно ли в "linker" ставить галку "Include TD32 debug info"?
Нужно ли прописывать дополнительные пути в разделе "Directories / Conditionals"?
Нужно ли дополнительное ПО?

В данный момент необходимости отлаживать BPL нет (она была бы весьма кстати на прошлой неделе).
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135446
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
Кто-нибудь решал вопрос отладки стандартных модулей (например Forms.pas) при условиях:

Зачем кому-то вне Борланда отлаживать Forms.pas? Особенно в свете наличия bpl-пакетов (что автоматически подразумевает перекомпиляцию vcl???.bpl и эверест следующих из этого проблем)?

DmSer
Это реально?

Ну, в принципе, если руками собрать vcl.bpl с отладочными опциями ($D+ и т. п.) то, наверное, реально. Если хочется отлаживать дизайн-тайм, потребуется ещё remote debugger или как там его. Но, блин, задлянафига?
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135538
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дико извиняюсь, спросонья попутал, проф-деформация. Мимопроходящий частично прав.

*.jdbg даст возможность IDE показать информацию о коде. IDE использует эти файлы, когда в IDE происходит сбой и ей нужно отправить отчёт со стеком вызовов. Также эти файлы может использовать трейсер исключений (EurekaLog, madExcept, JCL) для постройки стека вызовов внутри BPL. Т.е. это файлы для production, где нужно деплоить BPL+jdbg.

Для именно отладочных же целей создаётся *.dcp файл, куда при компиляции пакета складываются все скомпилированные модули пакета - включая всю отладочную информацию. Отладчик может использовать эту информацию в процессе отладки. Т.е. это файлы для design-time: BPL+dcp.

В частности, \lib\win32\debug\rtl.dcp собирается с отладочной информацией, а \lib\win32\release\rtl.dcp - без. Соответственно, если нужно отлаживать системные пакеты - нужно, чтобы отладчик выбирал вариант из папки debug. Что будет выбирать отладчик - зависит от путей поиска. А папка debug как раз добавляется в пути поиска при включении опции "Use Debug DCU". Т.е. если "Use Debug DCU" включена, то debug папка будет в путях поиска и будет использован \lib\win32\debug\rtl.dcp с отладочной инфой.

Уточнить, какой файл используется можно из View / Debug Windows / Modules - напротив rtl.bpl должна быть синяя точка и указан путь \lib\win32\debug\rtl.dcp.

Таким образом, обычно, действительно, нужно просто включить опцию "Use Debug DCU".

Однако в вопросе речь идёт о Delphi 2007, в которой профили пока в зародыше. Папка \lib\debug в Delphi 2007 есть, но никаких отладочных *.dcp в ней нет, а потому отладчик может загрузить только release *.dcp без отладочной информации. Поэтому "из коробки" отлаживать системные BPL в Delphi 2007 нельзя.

Теоретически, можно пересобрать системные пакеты с отладочной информацией, но это не тривиальная задача. Лучше посмотреть в сторону временного отключения сборки с пакетами для отладки. Как вариант - создать свой пакет, куда включить модули из RTL/BPL и линковаться с ним.
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135762
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker,

Спасибо за развёрнутый ответ!
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135766
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Forms я указал для примера. Проблема у меня была с IBX, разбирался с причинами зависания приложения при ошибке подключения к Firebird. Возникала в рабочем проекте, состоящем их множества DLL, скомпилированных с пакетами.
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135770
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, как в 2007, в D6 и в D7 я всегда просто прописываю в Search path проекта путь к Source\Vcl и спокойно отдаживаю, включая IBX.
Без галки "Use debug dcu".
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135807
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь про пакеты, а не твоё приложение.
...
Рейтинг: 0 / 0
Отладка стандартных модулей VCL / RTL
    #40135825
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker
Речь про пакеты, а не твоё приложение.
Да, я не заметил.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Отладка стандартных модулей VCL / RTL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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