当前位置: 首页 > 面试题库 >

如何获取正在运行的占用100%cpu的java程序的完整堆栈跟踪?

公良理
2023-03-14
问题内容

我确实有一个jenkins实例,它陷入了某种无休止的循环,没有任何可见的活动。

我可以获得pid正在运行的进程的信息,那么如何生成可用于错误报告的跟踪?

我在linux上运行。


问题答案:

尝试使用jstack。它会为您提供线程正在执行的操作的完整列表。它所需要的只是进程pid。



 类似资料:
  • 我得到了堆栈跟踪。我所能跟踪的最远的回调是中的调用。没有留下是从调用的信息。 有没有一种方法可以获得完整的堆栈跟踪?

  • 问题内容: 我正在研究非常庞大的基于Java Web的应用程序。由于在开发过程中没有完成正确的日志记录,因此我很难设置断点并调试应用程序,因为我不知道执行顺序。在执行一些操作之后,是否有任何机制可以获取正在运行的Java应用程序的完整调用堆栈。 我在网上搜索了很长时间,但无法找到具体的解决方案。如果有东西请给我建议。谢谢 问题答案: 方法1:从命令行使用Jstack实用程序(JDK发行版的一部分)

  • 问题内容: 我有这个Python应用程序,它有时会卡住,我找不到位置。 有什么方法可以让Python解释器向您显示正在运行的确切代码吗? 某种动态堆栈跟踪? 问题答案: 我有用于以下情况的模块-进程将长时间运行,但有时由于未知且不可复制的原因而卡住。它有点hacky,并且只能在unix上运行(需要信号): 要使用它,只需在程序启动时在某个时候调用listen()函数(您甚至可以将其粘贴在site.

  • 问题内容: 如何获得Java中的当前堆栈跟踪,就像你可以在.NET中那样? 我找到了,但这不是我想要的-我想找回堆栈跟踪信息,而不是打印出来。 问题答案: 你可以使用。 这将返回一个数组,该数组代表程序的当前堆栈跟踪。

  • 我有一个HttPURLConnection程序,它正在与运行在同一台机器上(本例中是CentOS)但部署在其他tomcat服务器上的某个应用程序建立连接。这意味着在部署在不同tomcats上的两个应用程序之间建立了HttpConnection,其中两个tomcats都运行在同一台机器上。 下面是我的代码: 然而,同样的代码在生产环境中运行得非常好,每秒大约有50个请求。 当我使用JVisualVM

  • Java(TM)SE运行时环境(构建1.7.0_40-B43) Java HotSpot(TM)64位服务器VM(构建24.0-b56,混合模式 我们有相同技术的其他应用程序,但没有问题。 -xms1g-xmx1g-xx:+heapdumponoutofmemoryerror-xx:+useparngc-xx:+useconcmarksweepgc-xx:+printgcdetails-xx:+p