2010-07-06 234 views
3

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

回答

1

我建议使用eclipse调试器来找出它挂起的位置。这将在您逐步完成时自动为您提供堆栈跟踪。

我找到了“步入”(F5)功能最有用的,这可以让你递归下降到功能,探索发生了什么。

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

2

假设您从Eclipse运行应用程序,但在Glassfish或Tomcat等Java EE容器内调用异常对象上的printStackTrace()方法(捕获时)将在Eclipse的控制台窗口中显示堆栈跟踪。在你的情况下,你首先需要知道是否抛出异常。我不建议在运行时创建一个Exception对象,以便从中推断出堆栈跟踪。

这是当然的,不是一个好的做法编写生产质量的代码时,你应该看看使用log4j的一样,七月或SLF4J日志框架来跟踪应用程序的行为。

如果推来推去,使servlet容器的调试(这从容器到容器而异),让您可以跟踪除了应用程序容器本身的行为。

2
  • 在服务器上启动JDK bin文件夹中的“jvisualvm”作为与启动Glassfish相同的用户。
  • 通过双击“本地”下的相应条目附加到Glassfish进程。
  • 在线程面板上单击线程转储按钮。
  • 将堆栈跟踪复制到剪贴板。
  • 在Eclipse中,将堆栈跟踪粘贴到控制台面板的Java堆栈跟踪控制台视图中。