我尝试使用以下代码创建内存转储
**/usr/lib/jvm/j2sdk1.5-sun/bin/jmap -heap 10699**
但我得到了下面提到的错误,任何人都可以帮助我
正在附加到进程 ID 10699,请稍候...附加到进程时出错:sun.jvm.hotspot.debugger.DebuggerException:无法附加到进程
我正在使用 java 5
我尝试使用以下代码创建内存转储
**/usr/lib/jvm/j2sdk1.5-sun/bin/jmap -heap 10699**
但我得到了下面提到的错误,任何人都可以帮助我
正在附加到进程 ID 10699,请稍候...附加到进程时出错:sun.jvm.hotspot.debugger.DebuggerException:无法附加到进程
我正在使用 java 5
为了积极主动,我假设您正在运行 ubuntu。在这种情况下,键入以下内容:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
如果您没有运行 ubuntu,我建议您以与运行目标进程相同的用户身份运行 jmap
(假设你在 ubuntu 上)
快速修复是echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
.
如果您希望它在重新启动后仍然存在,并且您不想损害受限制ptrace_scope
提供的保护,我建议setcap cap_sys_ptrace=eip
在需要 ptrace 的二进制文件上使用。对于 java 开发人员,您可以运行此命令(以 root 身份)
find /usr/lib/jvm -type f -perm -o+x -exec setcap cap_sys_ptrace=eip {} \;