您使用哪个Java调试器

mik*_*vdg 7 java eclipse debugging jpda

我花了很多时间使用JPDA在Eclipse中调试应用程序.Eclipse调试器有一些问题让我非常恼火.任何人都可以推荐插件,更好的调试器或者我不知道的技巧吗?

  • 在"变量"(Variables)选项卡中,您可以键入并执行Java代码位.但是,您首先需要点击某些内容(我通常会点击"this")给它一些上下文.然后,在输入冗长的Java表达式来调试某些内容并"执行"它之后,您的表达式将被替换为结果,因此您需要重新键入它.有没有更好的方法,比如控制台或我缺少的东西?
  • 当你在浏览数据结构时,调试器中的表示还有很多不足之处.你会看到Lists,Maps,StringBuilders等的内部表示.我想看到的是这些对象在概念上包含的内容.有没有办法做到这一点,可能使用其他调试器,或扩展或什么?
  • 抛出异常时,是否有某种方法可以检查抛出异常的应用程序的状态?目前我需要在Exception发生之前设置断点,然后尝试重现它.
  • 当我踩到一条带有许多语句的行时,我实际上无法看到哪些语句正在被执行,除非"踩到"每个语句以查看它在哪里.
  • 如果没有找到源代码,Eclipse只会茫然地盯着你看.你得到一个有用的屏幕,说"找不到类文件编辑器/源代码"这是完全没用的.我更喜欢能够逐步执行字节码,所以我至少可以看到发生了什么.有没有人知道Java调试器比Eclipse更好?

Vil*_*las 11

我一直在使用Eclipse调试器一段时间并分享您的一些顾虑.但是,您提到的一些要点已在Eclipse调试器中解决/解决:

数据结构:变量视图已经具有显示列表/集/数组等的"逻辑结构"的选项.此视图的左上角有一个按钮来启用此功能.您还可以通过Java-> Debug-> Logical Structures首选项添加自己的自定义表示.

例外:调试器允许您设置异常断点(在断点视图中添加Java异常断点按钮).抛出特定异常时会触发这些断点.

源代码:如果您安装了一个包含字节码查看器的插件(例如asm字节代码插件http://asm.ow2.org/eclipse/index.html),调试器将在缺少源代码时逐步执行字节码.