当通过VCL进行调试时(必须使用调试dcus!),通常需要(在某些情况下大部分时间)逐步执行汇编代码,特别是像“_IntfClear”这样的例程。
(删除System.pas无法解决问题,因为经常会弹出一个窗口询问system.pas的位置)
有没有办法将“system”单元从调试中排除?
当通过VCL进行调试时(必须使用调试dcus!),通常需要(在某些情况下大部分时间)逐步执行汇编代码,特别是像“_IntfClear”这样的例程。
(删除System.pas无法解决问题,因为经常会弹出一个窗口询问system.pas的位置)
有没有办法将“system”单元从调试中排除?
Delphi包含的DCU文件位于Lib文件夹中。调试版本位于Lib/Debug文件夹中。所有“使用调试DCUs”选项控制的仅是这两个文件夹中哪一个出现在项目库路径中,因此链接程序时会包含其中一个或另一个集DCU文件。
既然我们已经揭开了“使用调试DCUs”选项的神秘面纱,那么我们可以利用它。要从调试中排除某个特定的DCU,请启用“使用调试DCUs”,然后找到需要排除的单元的调试版本,并将其替换为非调试版本。例如,删除Lib/Debug/System.dcu并替换为Lib/System.dcu。
另外,如果有一个VCL单元想要跟踪,但对于其他不感兴趣的调试代码则不需要,那么禁用“使用调试DCUs”,然后找到该DCU的调试版本并放入非调试文件中。
如果您意外地跟踪了一个您不感兴趣的函数,则可以按Shift+F8“步出”当前函数。最终,您将学会识别通常导致您不想跟踪的调用的位置,然后您将按F8而不是F7“步进”代码。