使用jmap 将java进程8983 生成堆栈溢出文件
时间: 2023-03-06 08:17:21 浏览: 65
我不能给出关于使用jmap生成堆栈溢出文件的详细答案,但是我可以给你提供一些指导:首先,你需要在命令行窗口中运行jmap -dump:live,format=b,file=heapdump.bin 8983,然后查看生成的堆栈溢出文件heapdump.bin。
相关问题
jdk8使用jmap怎么生成hprof文件
要使用jmap生成hprof文件,您可以使用以下命令:
```
jmap -dump:format=b,file=<filename>.hprof <pid>
```
其中,`<filename>`是您要生成的hprof文件的名称,`<pid>`是您要转储的Java进程的进程ID。
此命令将在当前目录中生成一个名为`<filename>.hprof`的文件,其中包含指定Java进程的堆转储。
需要注意的是,使用jmap生成堆转储文件可能会对应用程序的性能产生一定的影响,因此建议在合适的时候使用此命令。
jdk8使用jmap生成hprof文件无权限
如果您在使用`jmap`命令生成`hprof`文件时遇到了无权限的问题,可能是因为您没有足够的权限访问Java进程的内存。在Linux/Unix环境下,您需要使用具有足够权限的用户帐户来运行`jmap`。
您可以尝试以下方法来解决权限问题:
1. 使用具有root权限的用户帐户运行`jmap`命令。
2. 使用`sudo`命令以其他具有足够权限的用户身份运行`jmap`命令。例如:
```
sudo -u <username> jmap -dump:format=b,file=<filename>.hprof <pid>
```
其中,`<username>`是具有足够权限的用户名,`<filename>`是您要生成的hprof文件的名称,`<pid>`是您要转储的Java进程的进程ID。
如果您无法使用以上方法解决权限问题,您也可以使用`jcmd`命令来生成堆转储文件。`jcmd`命令不需要您有特殊的权限,您可以以普通用户身份运行该命令。例如,以下命令将生成一个名为`<filename>.hprof`的堆转储文件:
```
jcmd <pid> GC.heap_dump <filename>.hprof
```
其中,`<filename>`是您要生成的hprof文件的名称,`<pid>`是您要转储的Java进程的进程ID。