我们已经构建了一个使用包和组件的应用程序。当我们调试应用程序时,IDE 中的“事件日志”通常会显示我们的 BPL 正在加载而没有调试信息(“无调试信息”)。这没有任何意义,因为我们所有的包和 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 个项目,都使用运行时包构建:
- 核心.bpl
- 组件.bpl
- Plugin.bpl(同时使用 #1 和 #2)
- MainApp.exe(使用 #1)
观察到的问题
1) 很多时候,当我们调试时,Components.bpl 加载了调试信息,但是“局部变量”窗口中的所有值都是空白的。如果您将鼠标悬停在代码中的变量上,则不会弹出窗口,并且“评估”窗口也不会显示任何内容(“结果”窗格始终为空白)。
2) 有时事件日志显示各种 BPL 的“无调试信息”。例如,如果我们激活 Plugin.bpl 项目并将其设置为 Run | 参数的 Host Application 为 MainApp.exe,然后按 F9,除了 Plugin.bpl 模块外,所有模块似乎都加载了“Has Debug Info”。加载时,事件日志显示“无调试信息”。但是,如果我们关闭应用程序并立即按 F9,它将再次运行它而不重新编译任何内容,这一次 Plugin.bpl 加载了调试(“有调试信息”)。
问题
1) 什么会导致“局部变量”窗口不显示值?
2) 为什么当 BPL 符合 debug 并且所有调试文件(dcu、map 等)都可用时,有时会在没有调试信息的情况下加载 BPL?