Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: cannot open binary file

48,244

Solution 1

I faced the same issue, however when I su'd to the correct user having the relevant permissions the issue went away.

Solution 2

Not directly related to the question asked. But, I encountered a similar error while using the jstack command while taking the thread dump of a java process. Let's say the pid of the java process for which I wanted thread dump is 1234.

I had used the command jstack -l 1234 /home/users/a/thread-dump.txt

What I missed in the above command is the redirection operator(>). The correct version of the command is

jstack -l 1234  > /home/users/a/thread-dump.txt

Maybe it helps someone :)

Solution 3

This will also happen if you attempt to attach to an ineligible process so it's a good idea to reconfirm your pid.

For example, a friend of mine got this when they attempted to attach to the jps process they used to search for eligible pids ;).

Solution 4

In our case, the java process was using .../JAVA_HOME/jre/bin/java binary and the jmap process was using .../JAVA_HOME/bin/jmap binary.

Once we changed java process to use .../JAVA_HOME/bin/java binary, then the issue got resolved. We were able to run the jmap successfully.

Key is to use run the java process using JDK java binary instead of JRE java binary.

Share:
48,244

Related videos on Youtube

infraio
Author by

infraio

Updated on November 28, 2020

Comments

  • infraio
    infraio over 3 years

    When I use jmap to get the heap info about a process, I got error like that:

    $jmap -heap process_id
    
    Attaching to process ID process_id, please wait...
    Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: cannot open binary
    file
    sun.jvm.hotspot.debugger.DebuggerException: sun.jvm.hotspot.debugger.DebuggerException:
    cannot open binary file    
    

    OS: Ubuntu 14.04

    I have solved another error (DebuggerException: Can't attach to the process) by updating kernel.yama.ptrace_scope = 0.

    See: https://bugs.openjdk.java.net/browse/JDK-7050524

    • Jonny Henly
      Jonny Henly almost 8 years
      Did you research the error you're getting?
    • Jonny Henly
      Jonny Henly almost 8 years
      Possible duplicate of Jmap can't connect to make a dump
    • infraio
      infraio almost 8 years
      You mean it is a permission problem? But I run this command by the same user with the java process.
    • infraio
      infraio almost 8 years
      After I restart my os, I start java process and use jmap again. There are no error. So it maybe permission probelm. But I am not sure about it.
  • yankee
    yankee almost 7 years
    Interesting enought: Beeing root did not do the trick for me. I used sudo -u THE__USER_RUNNING_THE_JVM ... and then it worked.
  • Pawan Singh
    Pawan Singh about 4 years
    It is also a solution for "java.lang.RuntimeException: Unable to deduce type of thread from address" error.
  • Alex
    Alex about 4 years
    Thanks a lot! Saved me tons of time!
  • Tamás Barta
    Tamás Barta over 3 years
    Thank you very much, this was the solution for my problem. I spent days to solve it :)