【问题标题】:Eclipse (Helios) debugger - getting different Results in Debug mode and Run modeEclipse (Helios) 调试器 - 在调试模式和运行模式下获得不同的结果
【发布时间】:2011-11-30 05:03:18
【问题描述】:

我正在使用 Eclipse Helios 调试 RCP(多线程 GUI 应用程序)。

当我执行相同的方法时,我在运行模式下得到一个空指针异常,但是在

调试模式,我没有得到任何异常。我认为它在 Debug 模式下运行良好。

空指针异常不会出现在调试模式下,而只会出现在运行模式下..

请帮帮我。会不会是多线程问题。

【问题讨论】:

  • 你能把代码贴在你遇到问题的地方吗?

标签: java eclipse multithreading debugging


【解决方案1】:

运行和调试模式下的不同行为并不罕见。有一次我花了一天时间发现 toString() 有副作用。调试器在显示变量时调用此方法。造成差异的另一个原因是并发性。调试器中的执行顺序可能与运行模式不同。

【讨论】:

    【解决方案2】:

    您可以在运行模式下发生 NPE 的行添加断点。并且你需要设置断点的属性来暂停整个虚拟机。

    然后调试你的程序,当一个线程试图执行该行时,整个虚拟机将被挂起。您可以让其他不尝试执行该行的线程恢复,第二个线程也将在该行上挂起。您可以分析您的代码的缺陷。

    【讨论】:

    • 嗨,Kane,感谢您的即时回复,您能否帮我设置该属性,通过它我可以暂停 VM 中的所有线程。
    【解决方案3】:

    请检查你是否使用了for each 来遍历一个集合。集合的遍历顺序可能会在run和debug之间不一致,导致结果不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      • 2017-03-16
      • 2021-12-27
      • 2016-05-12
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      相关资源
      最近更新 更多