在学习JDK自带的各种分析JVM的命令行工具时,学习到使用jmap/jstack/jstat等命令以及jvisualvm图形化的工具。
jstat以及jvisualvm时还没有问题,但在使用jmap/jstack时,总是会报错(环境:Win7-x64系统,开发工具为Myeclipse2013,各种命令中输入的pid也是Myeclipse2013的pid);报错信息举例如下:
C:\Users\admin>jstack 5756
5756: Unable to attach to 64-bit process
The -F option can be used when the target process is not responding
C:\Users\admin>jmap 5756
Attaching to process ID 5756, please wait...
Error attaching to process: Windbg Error: GetModuleParameters failed!
C:\Users\admin>jmap -F 5756
Attaching to process ID 5756, please wait...
Error attaching to process: Windbg Error: GetModuleParameters failed!
查了半天的某度及stackoverflow都告诉我是不是系统不对,或者pid有问题,然并卵,其实是Myeclipse2013惹得祸,尤其是使用jvisualvm连接到Myeclipse2013的进程后,直接导致Myeclipse2013挂掉点不动 。然而程序切换到Eclipse4.4运行后,再连接到Eclipse所在进程就没有问题!当然如果你是想查看某个正在运行的程序的内存及线程状况的话,应该连接到对应的javaw进程的pid下。所以当开发工具为MyEclipse并且想查看其内存状况的不妨先试着切换到Eclipse看看。而如果只是想要查看自己的程序状况的话就不要拿着ide的pid来试了。。。希望我填过的坑对您有所启示。
And。。。初来乍到,多多关照。