【问题标题】:Debugging Dll's in Delphi in BPG在 BPG 中调试 Delphi 中的 Dll
【发布时间】:2011-05-30 18:06:25
【问题描述】:

我正在调试一个带有多个 dll 的 bpg。有人能告诉我为什么我的断点确实有效,但最终会停止工作吗?让它们恢复的唯一方法是在我的项目组文件(Delphi 6 中的 BPG 文件)中进行构建?

我查看了其他几篇帖子,但没有太多运气得到这个特定问题的答案。同样,只要我全部构建,我就可以成功调试 BPG 中的所有 dll。每次都进行构建需要太长时间。

我在 WinXP 中使用 Delphi6。

谢谢

【问题讨论】:

  • 对于那些和我一样困惑的人:BPG 可能是 Borland Project Group。
  • 这是相当不具体的。我们很难猜出您的问题是什么。当断点停止工作时,它们在 ide 中的外观如何?它们是正常的红色吗?当断点停止工作时,您能看到排水沟中的蓝点吗?最后,调试是否有效,还是只是断点失败?
  • @David 在 IDE 中,所有的断点仍然存在,但它们不是红色的。也没有蓝点。调试仍然有效,只是一些断点失败。
  • @Cosmin,是的,BPG 是一个 Borland 项目组——在 Delphi 中一种将相关的 Delphi 项目收集到一个地方的方式。
  • 调试不应该在没有蓝点的情况下工作。这不计算。

标签: delphi debugging dll


【解决方案1】:

在 Delphi 6 中,通过完全重新构建解决的无法找到调试信息(所有蓝线都从您的源中消失)通常是您必须检查项目 (.dpr) 设置的症状。对于每个项目(dll 或 exe),请确保使用不同的唯一编译器输出文件夹(DCU 输出文件夹)。

【讨论】:

  • 我想知道您提出这个建议的依据是什么?我应该指出,并不是所有的蓝线都消失了,只是一些。谢谢。
  • 屏幕上消失的所有或一些蓝线都表示相同的事情。我特别发现编译成 DCU 文件的 PAS 文件也被编译并包含在 DLL 目标中,并且也包含在 EXE 目标中,似乎会触发编译器或链接器故障,从而导致这种情况。不共享 DCU 输出工件似乎可以减少或消除此问题的发生率。
猜你喜欢
  • 2023-03-17
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
相关资源
最近更新 更多