Мы создали приложение, которое использует пакеты и компоненты. Когда мы отлаживаем приложение, "Журнал событий" в среде IDE часто показывает, что наши BPL загружаются без отладочной информации ( "No Debug Info" ). Это не имеет смысла, потому что все наши пакеты и EXE построены с отладкой.
_(each project) | Options | Compiling_
[ x ] Assertions
[ x ] Debug information
[ x ] Local symbols
Symbol reference info = "Reference info"
[ ] Use debug .dcus
[ x ] Use imported data references
_(each project) | Options | Linking_
[ x ] Debug information
Map file = Detailed
У нас есть 4 проекта, построенных с помощью pacakges:
- Core.bpl
- Components.bpl
- Plugin.bpl(использует как # 1, так и # 2)
- MainApp.exe(использует # 1)
Наблюдаемые проблемы
1) Много раз, когда мы отлаживаем, Components.bpl загружается с информацией об отладке, но все значения в окне "Локальные переменные" пусты. Если вы наведите указатель мыши на переменную в коде, всплывающее окно не появится, и окно Evaluate также не покажет ничего (панель "Результат" всегда пустая).
2) Иногда в журнале событий отображается "No Debug Info" для разных BPL. Например, если мы активируем проект Plugin.bpl и установите его Run | Приложение Host Parameter для MainApp.exe, а затем нажмите F9, все модули, похоже, загружаются с помощью "Имеет информацию отладки", за исключением модуля Plugin.bpl. Когда он загружается, в журнале событий отображается "No Debug Info" . Однако, если мы закроем приложение и сразу же нажмем F9, он снова запустит его, не перекомпилируя что-нибудь, и на этот раз Plugin.bpl загрузится с отладкой ( "Has Debug Info" ).
Вопросы
1) Что приведет к тому, что окно "Локальные переменные" не отобразит значения?
2) Почему BPL иногда загружаются без отладочной информации, когда BPL выполняется с отладкой, и доступны все файлы отладки (dcu, map и т.д.)?