【问题标题】:While debugging in eclipse the code navigation buttons get disabled, the stackframe also is not visible在eclipse中调试代码导航按钮被禁用时,stackframe也不可见
【发布时间】:2018-02-20 00:41:12
【问题描述】:

这是我面临的一个非常常见的问题,当我调试一个大型 Java 应用程序并按下恢复按钮时,我遇到了“跨步”、“步入”和“步返回”似乎都是这样的问题已禁用。

1:

这可能是什么问题?

如何解决这个问题?

【问题讨论】:

    标签: java eclipse debugging remote-debugging


    【解决方案1】:

    在按下 resume 之后,直到某个断点被至少一个正在运行的线程到达,step * 按钮不可用,因为它们只能在一个线程已被断点中断。

    还有其他可能性,但前提是您在“调试”透视图的“调试”窗口中单击了某处:当线程因为到达断点而停止时,然后在“调试”窗口中单击同一线程的另一个堆栈帧可以禁用 step intostep return,并且在另一个线程的任何帧中单击同一窗口中的任何未到达断点的窗口将禁用所有内容,而不是 suspend 和 终止

    作为一个全局规则,您需要考虑您在 Debug 透视图的 Debug 窗口中选择的特定线程的状态,以及您在该线程的堆栈帧中选择的帧,以预测启用了哪些按钮/禁用。因为按钮的状态取决于这些选择。

    【讨论】:

    • 这是一种可能,但这是唯一的可能吗?
    • 还有其他可能性,但前提是您单击了调试透视图的调试窗口中的某个位置:当线程因为到达断点而停止时,然后单击另一个堆栈帧以实现相同Debug 窗口中的线程可能会禁用 step intostep return,并且单击另一个线程的任何帧中尚未到达断点的同一窗口将禁用所有内容,而不是暂停终止
    • 请也使用此信息更新您的答案。
    • 谢谢你的回答,现在我对这个有了更好的理解,你能指出一些关于调试的在线资源
    • 你会发现很多关于 Eclipse 的调试教程。但是非常重要的是要理解这些概念与许多其他运行时上的许多其他语言相同。调试在 JVM 中运行的 Java 与调试在 Windows 或 Unix 上编译和运行的 C 程序实际上是一样的。所以我建议,在阅读了一些关于在 Eclipse 上调试的教程之后,你可以阅读以下关于使用 GDB 调试 C 程序的页面:你可能会对完全相同的概念感到惊讶:phoenix.thch.unipg.it/manuals/gdb/gdb_7.html#SEC41
    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 2021-12-06
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多