-1

背景

我目前正在为冷融合编写自己的(回顾性)逐行调试器,因为现有的逐行调试器不适用于我们的 Eclipse 版本的冷融合版本。我已经(至少对于标签格式)得到了这个工作。它的功能只是让一个 java 程序检测每个(有效)行,<CFDUMP var='LINENUMBER' output='D:/retrospectiveData.txt'>然后同一个程序解释这个输出文件以显示程序的逐行进度(即使它是在事后)

问题

虽然绝大多数标签的行为是这样的,如果它们之前的标签被执行,它们也是如此,<cfelse>并且<cfelseif>不会以这种方式工作。这意味着这些行可能在我的调试器中错误地显示为正在运行。例如,考虑以下检测程序

<CFDUMP var='1' output='D:/retrospectiveData.txt'><cfif 1=1>
<CFDUMP var='2' output='D:/retrospectiveData.txt'>     <!--- something --->
<CFDUMP var='3' output='D:/retrospectiveData.txt'><cfelseif 1=1>
<CFDUMP var='4' output='D:/retrospectiveData.txt'>     <!--- something2 --->
<CFDUMP var='5' output='D:/retrospectiveData.txt'></cfif>

<cfelseif 1=1>被标记为正在执行,而实际上它从未被执行。鉴于它的评估结果为真,这将使 <!--- something2 --->永远不会运行的混乱

问题

有没有办法在执行 or 标记时输出文本文件(无论它评估为真还是假)。我知道我不能简单地在<cfelseif 1=1>.

4

1 回答 1

1

执行 or 标记时有什么方法可以输出文本文件

不使用 CFML,不。

我认为您的方法存在根本缺陷-正如您所发现的那样-因为仅仅因为代码执行到达“物理”代码行,并不意味着将执行该代码行。如果您将调试输出放在行的末尾而不是开头,您可能会更幸运(这样它将位于“内部”逻辑块,而不是在它们之前。但这可能会引发它自己的问题。

您不能在 ColdFusion Builder 中使用线路调试器,而是尝试将自己的调试器组合在一起吗?

于 2014-11-19T09:20:42.280 回答