2013-04-04 67 views
1

我試圖與下面的代碼Java內存轉儲問題

**/usr/lib/jvm/j2sdk1.5-sun/bin/jmap -heap 10699** 

使用,以創建內存轉儲,但我得到以下提到的錯誤,任何人都可以幫助我

附加到進程ID 10699,請稍候... 錯誤連接到過程:sun.jvm.hotspot.debugger.DebuggerException:無法連接到進程

我使用Java 5

+0

你在使用什麼操作系統? – KevinDTimm 2013-04-04 12:25:16

回答

3

爲了積極主動,我假設你正在運行ubuntu。在這種情況下,鍵入以下內容:

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope 

如果你不運行Ubuntu,我會建議您運行JMAP爲相同的用戶跑到你的目標進程

+0

可能值得鏈接到[bug JDK-7050524](http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7050524),它記錄了這一點。 – 2015-05-12 01:16:30

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 {} \;