java - eclipse 调试变量导出或打印

原文 标签 java eclipse debugging tomcat

我目前正在从大约100兆的war文件中调试类,该文件在Windows 7下的Tomcat上运行,并开始使用“catalina jpda start”,然后将该项目挂接到Eclipse调试器中。

我到了要调试的类已经完全初始化的程度,并且在调试透视图中的变量视图如下所示:

:> this
:> referenceIds
:> arr$
   len$
   i$
:> id

其中:>应该类似于白色的朝右的三角形,表示该对象可以展开。

我需要与另一位不在现场的开发人员共享“此”对象参考详细信息,并且他需要知道完整的内容才能为我提供帮助。

a)没有“全部展开”选项(我花了90分钟点击这些扩展三角形,但仍未完成,就像某种形式的递归 hell clickathon)和
b)即使我右键单击上面的内容并单击“复制变量”,它也不会为我提供扩展的信息,即,单击“此”上的“复制变量”会给我带来极大的信息:
REDACTEDProductsDataBuilder  (id=38)    
referenceIds    String[5]  (id=105) 
arr$    String[5]  (id=105) 
len$    5   
i$  3   
id  "4:REDACTEDUpsell" (id=117) 

我一直在寻找有关实现此目的的更简单方法的信息,但一无所获。我对使用eclipse调试器很陌生,因此如果对此有明显的答案,请原谅我,肯定有比花一天时间点击扩展三角形更简单的方法吗?如果没有,我还有其他选择吗?

最佳答案

似乎没有一种简单的方法来执行此操作,因为Eclipse很难为整个对象图选择合适的表示形式以放置在系统剪贴板上。

我建议为了帮助您进行调试,该类的重要字段包含在toString()表示形式中。

另外,您可以考虑对应用程序进行堆转储,然后将其发送给远程开发人员。堆转储是应用程序整个内存堆的二进制表示,并且可以使用许多工具来检查其中的一个文件,例如Eclipse Memory Analyzerjhat

相关文章:

java - Spring 3.2 Autowire通用类型

java - 如何使用Elasticsearch异步API控制响应

eclipse - 在Mac上设置好的Clojure

android - 调试器已脱离:对象注册有1个条目。 Android Logcat消息

c++ - Visual Studio 2010在调试期间显示const int 0

java - 在Google App Engine(Java)中创建ZIP存档

java - 压缩Weblogic日志

android - 如何将文本从一个 Activity 发送到另一个 Activity ?

java - 如何使Eclipse 4.7在Linux(Ubuntu)上的server-jre-1.8…上流畅运行?

javascript - Java反向/“时间穿越”调试器