2009-01-16 71 views
40

我知道有一个用于创建Delphi扩展的API。我经常使用GExperts软件包和各种JVCL专家。但我从来没有看到调试器的任何扩展。例如,能够为各种对象注册查看器而不必在检查器中检查它们将是非常好的。 (例如,带有显示TImage的图像控件的窗体,或显示数据集内容的网格。)是否可以写入Delphi调试器的扩展?

是否有任何API允许您以这种方式扩展Delphi的调试器?

编辑:当我写这个问题时,这是不可用的,但德尔福2010年提供了一种方法来做到这一点。

+0

好问题:-) 10个upvotes和一个答案。 – 2009-01-17 15:12:01

回答

17

在ToolsAPI.pas源文件中有一些用于调试的API接口。您可以通过此API获知调试事件何时发生,关于断点的信息,正在调试哪个进程等。但似乎不支持它们的变量或值。所以没有简单的方法来实现你的申请而不会有丑陋的黑客。

4

基本调试器可视化器可以通过OTA公开的评估接口来实现。 (可以找到调试器可视化器的示例herehere。)

也可以更深入地集成到调试器中(例如,我为C++ Builder编写了一个小扩展,使调试器能够评估实际对象在界面后面) - 但正如Khan指出的那样,为了达到这样的集成水平,你需要采取相当多的肮脏黑客行为。