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

Windows上的Java堆栈转储

沈树
2023-03-14
问题内容

我在标准Windows命令窗口中有一个正在运行的Java进程。即我已经运行’cmd’并在java -jar中键入…

我需要尽可能获得所有线程的完整堆栈转储。

我记得在Linux下,您可以通过quit命令上的选项将消息发送到JVM。

在此文件中为太阳状态

若要在Windows 95或Windows NT平台上生成堆栈跟踪,请在运行Java程序的窗口中输入键序列,或单击窗口上的“关闭”按钮。

这显然是错误的,因为关闭终端除了杀死进程并关闭窗口外什么也没有。


问题答案:

键入Ctrl+ Break是在Windows上生成线程转储的正确方法。

您是否在按Ctrl+ C(=中断)?这将发送一个SIGINT,通常会终止您的进程。



 类似资料:
  • 问题内容: 嗨,我正在尝试使用另一个空堆栈反转堆栈(我自己编写了一个堆栈)。由于某种原因,它无法正常工作。谁能帮我这个 ? 问题答案: while(!stack1.isEmpty()){ Integer value = (Integer)stack1.pop(); System.out.println(value); reverse.push(value); }

  • 问题内容: 我对Java不太了解。 我浏览了几个链接,发现博客上写着“ Java Primitives存储在堆栈上”,我觉得这取决于实例变量或局部变量。 经过几个链接后,我的结论是, 类变量(基元)作为对象包含的对象的一部分存储在堆中。 类变量– object(用户定义)–作为其包含的Object的一部分存储在堆中。对于参考对象和实际对象都是如此。 方法变量-基元-作为该堆栈框架的一部分存储在堆栈

  • 我对Java没什么概念。 我浏览了一些链接,发现博客上写着“存储在堆栈上的Java原语”,我觉得这取决于实例变量或局部变量。 经过几个环节,我的结论是, 类变量(原语)作为对象的一部分存储在堆中。 类变量——对象(用户定义)——作为对象的一部分存储在堆中。这对于参考对象和实际对象都是正确的。 方法变量——基元——作为堆栈框架的一部分存储在堆栈上。 方法变量-对象(用户定义)-存储在堆上,但是对堆上

  • 问题内容: 我只知道非基元(对象)放在堆上,方法在堆栈上,但是基元变量呢? -更新 根据答案,我可以说堆可以有一个新的堆,并且给定对象可以堆吗?假设对象将具有基本变量和引用变量。 问题答案: 本地定义的基元将在堆栈中。但是,如果将原语定义为对象实例的一部分,则该原语将位于堆上。 关于更新: 对象没有自己的堆栈。在我的示例中,实际上是的每个实例的一部分。只要分配了HeapClass的实例(例如),就

  • 我在学Windows上的汇编,想弄清楚栈上的值是什么。< br > Visual C #文档说明高于RSP的值是: 分配空间 保存了RBP 返回地址 注册主页(RCX、RDX、R8、R9) 函数参数 问题是堆栈中有32个额外的字节,文档中没有提到。 在内存快照中,RSP从0x0000000000DAF5E0开始。彩色框为: 黄色:两个值为9的64位变量 白色:保存旧RBP返回地址 蓝色:函数参数

  • 问题内容: 我正在尝试诊断Sun One 9.1应用服务器中的PermGen内存泄漏问题。为此,我需要获取JVM进程的堆转储。不幸的是,JVM进程是Windows上运行的1.5版。显然,没有一种触发堆转储的方法支持该设置。我可以让JVM在内存耗尽或关闭时进行堆转储,但是我需要能够在任意时间进行堆转储。 经常提到的两种获取堆转储的方法是使用jmap或使用HotSpotDiagnostic MBean