能否编写 Delphi 调试器的扩展?

40

我知道有一个API可以用来创建Delphi扩展。我经常使用GExperts包和各种JVCL专家。但我从未见过任何调试器的扩展。例如,能够注册各种对象的查看器,而不必在检查器中检查它们是非常好的。(例如,显示TImage的图像控件的表单,或者显示数据集内容的网格。)

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

编辑:当我写这篇问题时,这是不可用的,但Delphi 2010提供了一种方法。


好问题 :-) 10个赞和一个答案。 - Wouter van Nifterick
1
我同意。也许Nick Hodges会注意到 - 我认为他确实关注社区。 - Argalatyr
请参阅 QC 1138: http://qc.codegear.com/wc/qcmain.aspx?d=1138 - Rob Kennedy
1
@Rob Kennedy:QC 1138条目已关闭! - Francesca
好问题,再点一个赞。 - Fabricio Araujo
2个回答

17
在ToolsAPI.pas源码中,有一些用于调试的API接口。使用这些API,您可以在调试事件发生时得到通知,了解断点的信息以及正在调试哪个进程等。但似乎没有支持变量或变量的值的功能。因此,如果没有丑陋的hack方法,就没有简单的实现您的请求的方式。

4
可以通过OTA公开的评估接口来实现基本的调试器可视化工具。(可以在此处找到调试器可视化工具的示例herehere。)更深层次的调试器集成也是可能的(例如,我为C++Builder编写了一个小扩展,使调试器能够评估接口后面的实际对象),但正如Khan所指出的那样,要实现这种程度的集成,您需要采用相当多的肮脏技巧。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接