代码之家  ›  专栏  ›  技术社区  ›  yogsma

Eclipse中的堆栈跟踪

  •  3
  • yogsma  · 技术社区  · 15 年前

    如何通过Eclipse跟踪堆栈?在我的代码中,我试图上载一个文件,当我在应用程序中执行文件上载操作时,它只是挂起,没有错误消息。我试过调试,但没有多大帮助。

    3 回复  |  直到 11 年前
        1
  •  2
  •   Thorbjørn Ravn Andersen    15 年前
    • 在服务器上启动jdk bin文件夹中的“jvisualvm”,作为启动glassfish的同一用户。
    • 通过双击“本地”下的相应条目附加到Glassfish流程。
    • 在“线程”面板上,单击“线程转储”按钮。
    • 将堆栈跟踪复制到剪贴板。
    • 在Eclipse中,在控制台面板中的Java堆栈跟踪控制台视图中粘贴堆栈跟踪。
        2
  •  2
  •   Arjan Tijms Mike Van    11 年前

    假设您正在从Eclipse运行该应用程序,但在像GLAISFISH或Tomcat这样的JavaEE容器中,在异常对象(当捕获时)调用PrimtStAccTrace()方法将在Eclipse的控制台窗口中显示堆栈跟踪。在您的案例中,您首先需要知道是否有异常被抛出。我不建议只在运行时创建一个异常对象来从中推断stacktrace。

    当然,在编写生产质量代码时这不是一个好的实践,您应该考虑使用log4j、jul或slf4j这样的日志框架来跟踪应用程序行为。

    如果push是推送,则启用servlet容器的调试(这会因容器而异),这样除了应用程序之外,您还可以跟踪容器本身的行为。

        3
  •  1
  •   mikera    15 年前

    我建议使用Eclipse调试器来了解它挂起的位置。这将在您单步执行时自动为您提供堆栈跟踪。

    我发现“单步执行”(F5)功能最有用,这可以让您递归地进入函数,以了解正在发生的事情。

    您可以在文件上传代码的开头设置断点,这样您就可以从大约正确的位置开始单步执行。在我的Eclipse版本中,堆栈跟踪显示在相应线程下左上角的“调试”窗格中。