- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们构建了一个使用包和组件的应用程序。当我们调试应用程序时,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 个项目,全部使用运行时包构建:
观察到的问题
1) 很多时候,当我们调试时,Components.bpl 会加载调试信息,但“局部变量”窗口中的所有值都是空白。如果将鼠标悬停在代码中的变量上,则不会弹出窗口,并且评估窗口也不会显示任何内容(“结果” Pane 始终为空)。
2) 有时,事件日志会显示各种 BPL 的“无调试信息”。例如,如果我们激活 Plugin.bpl 项目并将其设置为 Run |将参数的主机应用程序设置为 MainApp.exe,然后按 F9,除了 Plugin.bpl 模块之外,所有模块似乎都加载了“Has Debug Info”。加载时,事件日志显示“无调试信息”。但是,如果我们关闭应用程序并立即按 F9,它将再次运行它而无需重新编译任何内容,并且这次 Plugin.bpl 会加载调试(“具有调试信息”)。
问题
1) 什么会导致“局部变量”窗口不显示值?
2) 当 BPL 符合调试并且所有调试文件(dcu、map 等)可用时,为什么有时会在没有调试信息的情况下加载 BPL?
最佳答案
我会用它来描述我的问题。
我使用 LoadPackage
函数动态加载包。
我可以在 SysInternals.com Process Monitor
中看到 packagename.DCP 在 LoadPackage
处理后打开并成功读取 - 没有文件 I/O 失败,没有尝试查找它在错误的地方,没有什么可疑的。 所以,也许 DCP 中的某些构造会使 IDE 调试器变得疯狂。我渴望 Turbo Debugger
可用于 Delphi。
顺便说一句,如果开发人员创建了 packagename.RSM,则同样如此。
然后(在断点或步骤跟踪处暂停)我打开查看/调试窗口/模块并看到最后一个模块是我的 - 并且它有空的“符号信息”单元格。我右键单击它,选择“重新加载符号”操作 - 就在这里,从现在开始我可以调试。
PS。不知道这是否会帮助我调试初始化部分 - 希望“加载时中断”菜单项即使在动态LoadPackage
调用中也能工作...
PPS。即使 IDE 重新启动,它确实可以工作。因此,现在我在使用 CPU View
加载 BPL 时收到警报,我按下 CTRL+ALT+M
,滚动到底部找到我的 BPL,r-单击以重新加载Symbols
,按 Enter 键,然后关闭 Modules
和 CPU
View 并按 F9(运行)
。在初始化
部分完成后,我再次收到CPU View
的警报 - 在退出LoadPackage
之前只需几个JMP
-所以我关闭了CPU View
并再次按下F9
。相当乏味,但仍然比 IDE 重启好。
关于Delphi App调试时出现 "No Debug Info",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8793683/
以下代码中的 alert(`${info} : ${pokemondetails[info]}\n`) 的含义是什么?有人可以用更简单的形式向我解释一下吗? let checkname = funct
C-x C-f blah.info 以基本模式打开文件。我使用了 apropos 并发现了 Info-mode,我认为它可能会从基本模式更改为 Info 模式,但这会引发 lisp 错误。 如何在 e
我想在另一个 Info.plist 键 (NSContactsUsageDescription) 的值中使用“Bundle 显示名称”(CFBundleDisplayName) 的值。 我尝试了以下方
我正在使用 Python 3.6.4。我第一次遇到 logger.setLevel(logging.INFO) 被忽略的问题,然后遇到了 this answer ,这让我感到困惑并引发了这个问题。 鉴
我是python新手 如果 logging.info() 足以进行日志记录,为什么我们必须使用 getLogger() 方法实例化一个记录器? 最佳答案 在没有名称的情况下调用 getLogger()
下面是来自源代码的示例代码:https://docs.python.org/3/howto/logging.html import logging logging.basicConfig(filena
我在网上阅读的所有内容都在谈论 Info.plist。当我创建项目时,XCode 为我创建了一个 [应用程序名称]-Info.plist 文件,它似乎与我在网上看到的示例 Info.plist 具有相
我定义了一个记录器实例如下: private static final Logger LOGGER = Logger.getLogger(Main.class.getName()); 我有一个要记录的
我的应用程序因 Info.plist 文件中缺少用途字符串而被拒绝(特别是对于 NSMicrophoneUsageDescription 用法)。 这取决于 react-native-permissi
我正在 Windows 下使用 Python 3.4.2。就我而言, import logging logger = logging.getLogger('logger') logger.setLev
我的背景主要是使用 C 和 C++ 进行 Windows 编程。最近我也有机会使用一些嵌入式 Linux 系统,但我对此还是个新手。 现在我正在为 Openwrt 开发一个实用程序,它需要对正常操作期
所以我只是按照此处所述运行了 INFO 命令 http://redis.io/commands/info 但它只给我默认部分——比如 cpu 信息和其他 当我尝试添加 [section] 参数时 -
我正在尝试了解 QEMU 内存管理(使用 i386 guest ,没有 KVM)。 QEMU 监视器允许列出 CPU 寄存器信息( info registers )、USB 设备( info usb
我的包中有 package-info.java,Hibernate 需要它来实现某些功能(编程实体扫描)。 但是,mvn package 不会导致 package-info.class 在 class
我遇到了似乎很常见的错误,因为 Xcode 似乎找不到我的“Info.plist”文件。 我已经检查了这两个 StackOverflow 问题的答案( Could not read from Info
我一直在尝试阅读 XEP-0030 Service Discovery但发现该语言非常不透明。 我的问题很简单:disco#info 规范和 disco#items 规范有什么区别? 我的猜测是 di
这个问题已经有答案了: String concatenation performance in Log4j (3 个回答) 已关闭 4 年前。 之前我通常使用log.info(“dsasdds ” +
我从 Erlang 文档中看到 supervisor:start_child 可以返回两个不同的非错误结果:{ok, Child} 和 {ok, Child, Info}。这个信息在哪里设置? sim
我使用的是 Crystal 0.25.0,File.info(string).symlink? 在以下示例中应返回 true 时返回 false: `mkdir -p /tmp/delete` Di
对于属性: Persist Security Info=true 和 Persist Security Info=false 你能告诉我它们之间有什么区别吗,如果我不把它放在我的连接中会发生什么? c
我是一名优秀的程序员,十分优秀!