背景
我目前正在为冷融合编写自己的(回顾性)逐行调试器,因为现有的逐行调试器不适用于我们的 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>
.