在 Eclipse 中调试时查看完整字符串

在调试 Java 代码时,视图“ Variables”和“ Expressions”中的 String 只显示到一定长度,然后 Eclipse 显示“ ...”

有什么方法可以检查整个字符串吗? (这减轻了添加日志语句以便在任何地方进行调试的痛苦)

72951 次浏览

在 Variables 视图中,您可以右键单击 Details 窗格(显示字符串内容的部分)并选择“ Max Llength...”弹出菜单。同样的长度也适用于表达式检查器弹出窗口和少数其他位置。

enter image description here

如果您有一个非常长的字符串,我将使用不同的策略: 将其转储到一个文件中。我在 Display 视图中使用了一段代码,这段代码被计算为将数据转储到一个文件中。我使用 Commons IO,但是您可以只使用 JDK 方法。

org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File("<filename>"), <expression to evaluate>);

当然,您需要在类路径中使用 Commons IO JAR 来实现这一点。如果您不这样做,请求助于 JDK 工作。

变量视图中,右键单击变量并选择 改变价值。如果您的变量很大,您必须等待几分钟(在这种情况下,Eclipse 不响应命令) ,但最终 Eclipse 将完全显示您的变量。

对于基于 Eclipse 的 javascript 调试,“ change value”方法和“ Max length”方法对我来说都失败了,添加了需要观察的对象(表达方式) ,然后 右键单击被监视的表达式选择“ LoadFull Value”是唯一适合我的解决方案,但是 即使这样也会在输出中插入不需要的“ n”

注意 -“ Max length”必须设置为“ Load Full Value”才能工作,因为它加载值直到 Max length (Eclipse 的默认值是10000)。参考上面的答案,看看如何设置最大长度。

当调试器到达需要 String 值的位置时,只需键入 sysOut 语句

System.out.println("The value is : \n " + query);

选择上面的语句 右击-> 执行

它将在控制台上打印该值

从 eclipsedebug 视图查看 String 值的最佳方法如下所示。

1)在 Eclipse 中切换到调试视图

2)在变量窗格中选择所需的变量。

3)右键点击变量窗格的显示区域,显示值,然后点击最大长度。在“配置详细信息”窗格中输入最大字符值。

4)干杯

enter image description here

Eclipse Mars 中没有“ maxLlength”。而且,“更改值”只适用于“变量”,而不适用于“表达式”,所以以上这些都不适用于我。

enter image description here

并且,表达式被从中间切断,而不是在结尾。我猜他们改变了默认行为。

对我来说,唯一有效的方法是展开表达式名称列的宽度,然后单击表达式以选择所有内容以查看完整长度的内容。

上面的内容对我来说都不起作用,而且,我的 Eclipse 中的一些用户界面元素无法找到所描述的内容。我用的是 STS4.3.1。

我需要的值非常大,它是一个巨大 JSON 请求的一部分。解决方案是在 Eclipse Debug Shell 控制台中使用一个表达式,并输出整个值的子字符串。因为您可以看到部分值,所以检查它并使用最后几个文字作为输出字符串下一个块的位置。重复这种方法,直到得到你需要的东西:

String result = new String(reallyBigByteArrayValue, "UTF-8");
result.substring(result.indexOf("some-unique-text"));

在 EclipseIDE 2020-09中,右键单击“漂亮的打印到控制台”。 Right Click dialog

从控制台可以进行全长复制。