11

I have a j2ee application and monitoring it by visualVM.

Lets say that I have a method like this:

public void doStuff(int param) {
    String s = getStringVariable(param);
    StringBuilder sb = new StringBuilder();
    //Do stuff with sb object
}

From the thread tap, I can see that some of my threads stuck in the above method. So I have generated a heap dump file to figure out what is s and sb contains.

But how can I do that? I am using Eclipse Memory Analyzer.

The Guy with The Hat
  • 10,836
  • 8
  • 57
  • 75
Sam
  • 133
  • 1
  • 8

1 Answers1

18

you can get the local variable's from your thread, because if a local variable is a currently a live, then that means the only reference for that variable is its own thread.

So first you need to list your current threads, and you can do that by:

  1. Click on the objects options button from the actions bar [].
  2. Select Java Basics -> Threads Overview and Stacks.

Then to list the object for a specific Thread:

  • Right Click -> List Object -> OutGoing references

Then Search for your local variable with in a tag <Java Local>

TWiStErRob
  • 44,762
  • 26
  • 170
  • 254
Salah
  • 8,567
  • 3
  • 26
  • 43