是否有适用于Java的功能级调试/日志记录工具?

时间:2009-10-12 13:43:05

标签: java debugging stack-trace xdebug

我很抱歉,如果标题令人困惑,但我想不出任何类似的称呼它。我正在寻找的是,是否有任何类型的工具(或eclipse插件等)将记录程序中的所有翻译行。例如:

int b = 20;
for (int x = 0; x < z; x++)
b = b + 5;

会被翻译成

b = 20
for (int x = 0; 0 < 50; 0++)
b = 20 + 5;

我问,因为看起来相对实现起来并不太难,因为我们可以一次调试一行,我认为这样可以节省大量时间。如果您只是浏览一个日志文件并查找错误并查看问题发生在哪一行以及导致它的上下文,那么调试会更容易。 XDebug for PHP具有功能级别跟踪,因此您可以查看程序中传递的变量的值,并将其转储到日志中。我发现它节省了大量的调试时间。问题通常很明显,很容易解决。

它肯定会超越添加日志记录语句。

编辑:我想澄清一点,我不是在寻找传统的Eclipse调试器。我只是在寻找变量和状态的整体记录。

3 个答案:

答案 0 :(得分:2)

Eclipse和任何值得盐的IDE都带有一个可以执行此操作的调试器等等。您可以让程序在任何特定的代码行(无论何时到达,或仅在满足特定条件时)停止,并检查该点的变量状态,以及修改变量并执行任意操作,而不是打印出跟踪。陈述以查看其回报值。

对于代码在服务器上运行的Web应用程序,您甚至可以通过网络将调试器连接到远程JVM。

Here's a tutorial关于如何使用eclipse调试器。甚至还有一个允许你将它用于PHP代码的插件。

答案 1 :(得分:1)

我认为Trace可能是你想要的,虽然在实践中,我希望一个好的调试器具有表达式评估和条件断点可以更快地解决你的整体问题。请注意,Trace被写入JPDA并且其代码可用。

答案 2 :(得分:0)

我不明白这样的工具是如何工作的。它会对条件有什么影响?对于用户输入?

int x=getUserInput();
print(x);  // What would your translator show for this line?

此外,它听起来有点像任何此类工具可用于解决Halting Problem ...只看最后一行。