在eclipse中调试会话期间记录所有跟踪信息

在eclipse中调试会话期间记录所有跟踪信息,eclipse,debugging,tcl,trace,Eclipse,Debugging,Tcl,Trace,我想记录调试会话的每个步骤(稍后处理所有这些数据)上的所有调试信息,例如调用的方法的名称、参数值、所有变量值等 是否有任何选项可以启用此功能?我应该在哪里更改代码以实现这一点 有一点很重要:它不是java程序。它是一个使用activeState调试器从eclipse内部运行的TCL。因此,AOP和JDT不是这里的选项:-( 短暂性脑缺血发作 Leo我建议在tcl中使用该命令 一个简单的例子: set ::TraceFd [open {/path/to/logfile} a] proc ::Tra

我想记录调试会话的每个步骤(稍后处理所有这些数据)上的所有调试信息,例如调用的方法的名称、参数值、所有变量值等

是否有任何选项可以启用此功能?我应该在哪里更改代码以实现这一点

有一点很重要:它不是java程序。它是一个使用activeState调试器从eclipse内部运行的TCL。因此,AOP和JDT不是这里的选项:-(

短暂性脑缺血发作

Leo

我建议在tcl中使用该命令

一个简单的例子:

set ::TraceFd [open {/path/to/logfile} a]
proc ::TraceLog args {
    puts $::TraceFd $args
}
trace add execution source {enterstep leavestep} ::TraceLog
source /the/main/file.tcl

这或多或少满足了您的需要。我不知道eclipse如何与Tcl一起工作,但调试Tcl的最佳方法是使用Tcl:)

根据您的具体需要,可能还需要查看logger包及其跟踪日志级别,它还使用执行跟踪来收集一些信息


您可以将它们添加到代码中,如果它们被关闭,您将支付零性能惩罚,并且您可以在需要时打开它们。

+1。请注意,执行跟踪会带来严重的性能损失,特别是在为至少某种速度而设计的代码中。在某些情况下,这可能是一种值得付出的惩罚,但你确实付出了。(如果代码创建了任何子解释器,您也不会将跟踪引入任何子解释器。大多数Tcl代码不会这样做。)还有一件事(跟踪已经足够好了,但也许我们可以做得更好)。有没有办法让跟踪只显示有效执行的行?(例如,忽略不满足条件的整个“if”循环)。如果一行没有执行,那么它将不会显示。但是如果执行了
if 0{foo bar}
,则整个
if 0{foo bar}
将进入日志,
foo bar
不会。