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





Возможно, ваши DCU устарели, поэтому отладчик не вмешивается в код.
Обычно это исправляет удаление всех DCU и выполнение Build All.
На всякий случай вам может потребоваться удалить DCU из пути поиска. Конечно, сначала сделайте резервную копию ...
Пакеты - это просто библиотеки DLL. Вы должны включить в них отладочную информацию, чтобы иметь возможность отлаживать их, что вы и хотите сделать. Таким образом, вам понадобятся пакеты DEBUG для VCL и RTL, а не отладочный dcus. Debug dcus даже больше не нужен, когда вы используете готовые пакеты.
Отлично. Существуют ли эти пакеты отладки? Где мне их найти?
Вы не можете их найти. Теоретически вы можете создать их самостоятельно, пока у вас есть весь (или почти весь?) Исходный код.
Это работает так, как задумано.
Когда вы строите с пакетами, вы выполняете код пакета, а не используете какие-либо DCU. Следовательно, DCU компилируются, и вы не получаете доступа к DCU отладки.
Вы можете либо полностью отключить пакеты, либо не компилировать с конкретными пакетами, которые хотите отлаживать. Вы можете выбрать, какие пакеты следует использовать или не использовать, а те, которые не используются, будут «отлаживаемыми» с помощью Debug DCU.
Хотя обидно. Потому что иногда приложения зависят от использования пакетов времени выполнения (структур плагинов).
Я попытался удалить «VCL», «VCLX» и «RTL» из списка «сборка с пакетами». Это не сработало. Также нельзя полностью отключить "сборку с пакетами".
Отключение «сборки с пакетами» должно работать. Убедитесь, что вы выполнили полную перестройку и включили Use Debug DCUs. Это, конечно, не сработает, если вы по-прежнему используете пакеты времени выполнения каким-либо другим способом (загружая пакеты динамически).
Меня беспокоят не мои собственные DCU. Они отлично работают. Только системные компоненты - компоненты RTL и VCL - вызывают у меня проблемы, и я могу только предположить, что их удаление вызовет еще больше проблем.