【问题标题】:Eclipse Debugger toString() callsEclipse 调试器 toString() 调用
【发布时间】:2015-04-13 02:40:46
【问题描述】:

我正在调试一个 Java 代码数据库(不是我的),在一个类中,toString() 方法被覆盖,它具有生成 RuntimeException 的副作用。当我在表达式视图中选择对象时,我可以在 Eclispe 调试视图中看到堆栈跟踪。

是否可以调试从 Eclipse 调试器到toString() 的调用?我尝试在 toString() 方法中设置断点,并在所有捕获和未捕获的 RuntimeExceptions 上放置一个全局断点。但是toString() 方法中的所有断点都被忽略,Eclipse 永远不会在toString() 中生成 RuntimeException 的行中断。

【问题讨论】:

    标签: java eclipse debugging


    【解决方案1】:

    似乎我在 Eclipse 的旧 Bug 线程中找到了答案:

    https://bugs.eclipse.org/bugs/show_bug.cgi?id=12592

    当调试器在调试视图中的详细信息窗格中调用toString() 时,将禁用断点。

    【讨论】:

      【解决方案2】:

      我看不出 eclipse 是如何无法在被覆盖的 toString 方法中调试的,也许该异常从未从 toString 抛出,

      我猜你可能正试图从一个未实例化的变量中访问 toString。

      你能更具体或更详细吗?你可以发布你的代码.. :)

      更新: 我假设 Eclipse 没有调用断点,因为甚至在断点被击中之前就抛出了错误。所以你可能需要改变你的起始断点并将你的代码分解为行并查看它被抛出的位置。

      【讨论】:

      • RuntimeExcption 中的消息即
      • 是的,我知道它在运行时,并且您可能有逻辑错误导致这些变量未实例化。 :)
      • 为什么这被否决了?这个问题甚至不合规,但我试图帮助.. dah..
      • RuntimeException 抛出一个特殊的消息,所以我知道这是有问题的行。我更改了消息,更改显示在 Eclipse 的 Expressions 视图中。我在该行上放了一个断点,但它被忽略了。
      • 老兄,它被忽略了,因为在 Eclipse 命中之前,已经抛出了断点错误。
      猜你喜欢
      • 1970-01-01
      • 2014-02-21
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 2011-09-11
      • 1970-01-01
      相关资源
      最近更新 更多