Как найти локальные переменные в файле кучи
У меня есть приложение j2ee и мониторинг его visualVM.
скажем, что у меня есть такой метод:
public void doStuff(int param) {
    String s = getStringVariable(param);
    StringBuilder sb = new StringBuilder();
    //Do stuff with sb object
}
из крана потока я вижу, что некоторые из моих потоков застряли в вышеуказанном методе. Поэтому я создал файл дампа кучи, чтобы выяснить, что содержит s и sb.
но как я могу это сделать? Я использую анализатор памяти Eclipse.
1 ответов
вы можете получить локальную переменную из своего потока, потому что если локальная переменная в настоящее время является живой, то это означает единственной ссылкой для этой переменной является ее собственный поток.
поэтому сначала вам нужно перечислить текущие потоки, и вы можете сделать это:
-  нажмите на кнопку параметры объектов на панели действий![[]](/images/content/22491527/7667164aa770c3a12eaaa697a13550eb.jpg) . .
- выберите основы Java - > обзор потоков и стеки.
затем в списке объект для определенного потока:
- щелкните правой кнопкой мыши -> объект списка - > исходящие ссылки
затем найдите локальную переменную с помощью тега <Java Local>
