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