Delphi: Почему "использование отладочных DCU" становится неэффективным, если я использую пакеты в своем проекте?

Я строю проект, который использует систему плагинов JVCL, которая опирается на пакеты Delphi, и с тех пор, как я добавил его в свой проект, отладка превратилась в кошмар, потому что я больше не могу пошагово отследить источник любого VCL или RTL единицы. Они все помечены как серые точки в отладчике (когда соответствующие функции вообще появляются в стеке вызовов; иногда я получаю очень странные результаты), и это сводит меня с ума. Кто-нибудь знает, как вернуть мою функциональность DCU отладки? (Помимо очевидного: вырвать весь связанный с плагином код. Это сработало бы, но это не очень помогло бы.)

Изменить: Просто чтобы быть ясно, я могу проследить что-нибудь еще в моем проекте. Код JVCL. Другие сторонние библиотеки. Мой собственный код Все это прекрасно отображается в отладчике. Только не код Delphi RTL и VCL - материал, к которому опция компилятора "использовать отладочные DCU" должна предоставить вам доступ.

3 ответа

Решение

Это работает как задумано.

Когда вы создаете пакеты, вы выполняете код пакета, а не используете DCU. Следовательно, DCU компилируются, и вы не получаете доступ к Debug DCU.

Вы можете либо полностью отключить пакеты, либо не компилировать с конкретными пакетами, которые вы хотите отлаживать. Вы можете выбрать, какие пакеты использовать или не использовать, а те, которые не используются, будут "отлаживаемыми" с отладочными DCU.

Пакеты - это просто библиотеки DLL. Вы должны включить отладочную информацию в них, чтобы иметь возможность отлаживать их, что вы и хотите делать. Поэтому вам нужно иметь пакеты DEBUG для VCL и RTL, а не отладку dcus. Отладочный dcus больше не нужен даже при использовании готовых пакетов.

Это могут быть DCU, которые у вас есть, устарели, поэтому отладчик не вмешивается в код.

Обычно удаление всех DCU, а затем выполнение Build All исправят это.

Вам может понадобиться удалить DCU в пути поиска, просто чтобы быть уверенным. Сначала сделайте резервную копию...

Другие вопросы по тегам