Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 如何将CFDUMP(或类似)放置在<;否则>;标签 背景_Debugging_Coldfusion_Coldfusion 10_Cfdump - Fatal编程技术网

Debugging 如何将CFDUMP(或类似)放置在<;否则>;标签 背景

Debugging 如何将CFDUMP(或类似)放置在<;否则>;标签 背景,debugging,coldfusion,coldfusion-10,cfdump,Debugging,Coldfusion,Coldfusion 10,Cfdump,我目前正在为cold fusion编写自己的(回顾性的)逐行调试器,因为现有的逐行调试器不适用于我们的cold fusion版本和Eclipse版本。我已经(至少对于标签格式)做得很好了。它只需让一个java程序用插入每一行(有效的)指令,然后同一个程序解释这个输出文件,以显示程序中一行一行的良好进度(即使是在事后) 问题 虽然绝大多数标记的行为都是这样的,如果在它们之前的标记被执行,那么它们也不会以这种方式工作。这意味着这些行可能会在我的调试器中错误地显示为正在运行。例如,考虑下面的仪表程序

我目前正在为cold fusion编写自己的(回顾性的)逐行调试器,因为现有的逐行调试器不适用于我们的cold fusion版本和Eclipse版本。我已经(至少对于标签格式)做得很好了。它只需让一个java程序用
插入每一行(有效的)指令,然后同一个程序解释这个输出文件,以显示程序中一行一行的良好进度(即使是在事后)

问题 虽然绝大多数标记的行为都是这样的,如果在它们之前的标记被执行,那么它们也不会以这种方式工作。这意味着这些行可能会在我的调试器中错误地显示为正在运行。例如,考虑下面的仪表程序

<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>

将被标记为正在执行,而实际上它从未被执行过。如果它的计算结果为true,这将使人混淆
从未运行

问题 在执行or标记时(无论其计算结果是true还是false),是否有任何方法可以输出文本文件。我知道我不能简单地在
中添加一个额外的标签

在执行or标记时,有没有办法输出文本文件

不是用CFML,不是

我认为您的方法从根本上是有缺陷的——正如您所发现的——因为仅仅因为代码执行达到了“物理”代码行,并不意味着代码行将被执行。如果您将调试输出放在行的末尾,而不是开头,那么您可能会更幸运(这样,它将“在”逻辑块中,而不是在逻辑块之前。不过,这可能会引发自身的问题


你不能在ColdFusion Builder中使用行调试器,而不是尝试拼凑你自己的调试器吗?

非常混乱,我不确定我是否理解你要做的工作。你的RetrospectVedata.txt文件将只包含
1
2
3
…有什么大惊喜?@duncan对于这个程序:非常不奇怪ising.对于3000行文件,我使用嵌套的ifs、while循环等,即使是我现在有点问题的版本,也确实大大改进了调试(尽管它适用于大多数其他标记)。最后还有一个类似的问题:如果它们的评估结果为false,那么它们也不会被标记。不过这是一个我可以解决的问题。购买ColdFusion Builder可能最终成为一个前进的方向,尽管我对支付200英镑购买IDE并不太习惯。这意味着我的黑客版本已经运行得相当好了你已经花了很多时间在这上面了吗?不管你,你的测试人员,ppl每小时的收费是多少,大概都超过了200英镑;-)啊,但它是用Java写的,正好放在业余爱好专栏里(我爱Java)。这是一个我既想做又想有用的项目。(周日大约4小时)。请记住,如果您将ColdFusion升级到版本11(即使您没有立即安装或升级服务器),您将获得CF Builder 3的免费许可证(3个企业版许可证)。@CarlVonStetten我不知道,我想我只是觉得在我工作的公司花了数万英镑购买了一台企业版的cold fusion服务器之后,他们应该免费赠送我们为该服务器开发的基本工具。好吧