Получение иерархии вызовов в Java

Поместите это в ваш gitconfig:

reduce-to-subfolder = !sh -c 'git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter cookbooks/unicorn HEAD && git reset --hard && git for-each-ref refs/original/ | cut -f 2 | xargs -n 1 git update-ref -d && git reflog expire --expire=now --all && git gc --aggressive --prune=now && git remote rm origin'
6
задан Jon 28 July 2009 в 23:17
поделиться

4 ответа

Thread.currentThread().getStackTrace();

или

Exception ex = new Exception();
ex.printStackTrace();

Это довольно медленно, но подходит для целей отладки. Документация по API .

15
ответ дан 8 December 2019 в 14:45
поделиться

Java - это небольшая часть приложения, поэтому я не могу скомпилировать и запустить все приложение в eclipse / net beans, поэтому у меня нет доступа к иерархии вызовов отладчика IDE.

Вы вообще не нужно запускать приложение. Если вы создаете проект в Eclipse, вы можете использовать его встроенный инструмент Call Hierarchy, чтобы найти все возможные места, в которых вызывается метод.

Есть компромисс: инструмент иерархии вызовов предоставит вам ВСЕ места, откуда вызывается метод. Это хорошо, если вы хотите / должны знать все возможности. Предложение Неслсона Thread.currentThread (). GetStackTrace () даст вам места, откуда вызывается метод в процессе вашей программы для этого вызова. Нюанс в том, что во время этого вызова вы можете не пройти все пути кода.

1
ответ дан 8 December 2019 в 14:45
поделиться

Лучшее, что можно сделать, - это создать исключение, немедленно поймать его и проанализировать трассировку стека.

Я считаю, что именно так Log4J может регистрировать вызывающий метод.

0
ответ дан 8 December 2019 в 14:45
поделиться

Вы пробовали использовать возможность удаленной отладки Java? Поиск в Google поможет вам начать работу, если у вас нет

0
ответ дан 8 December 2019 в 14:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: