Как распечатать все методы, вызываемые во время выполнения Java-программы?

У меня есть программа Java (файл jar), и я хочу распечатать все методы, вызываемые во время выполнения этой программы. Итак, если Class1.main() вызывает Class1.foo1(), инициирует Class2, вызывает Class2.foo2() и Class2.foo3(), то я хочу, чтобы вывод был похож на

called Class1.main
called Class1.foo1()
called Class2.<init>
called Class2.foo2()
called Class2.foo3()

Обратите внимание, что я не хочу видеть активную трассировку стека, например, метод, который в данный момент активен, и методы, которые привели к вызову этого метода, поскольку он не будет распечатывать те методы, которые не связаны с вызовом этого метода. метод. Я хочу видеть все методы, вызываемые во время выполнения программы, в том порядке, в котором они вызываются.

Ответ может использовать любой метод, хотя я ожидаю, что он будет использовать какую-то программу отладки, например jdb. Причина этого в том, что я уже пытался использовать инструментарий с Javassist (описанный в моем ответе на этот вопрос) и столкнулся с ошибками при попытке использовать его с более сложными программами.


person Nopslide    schedule 27.03.2017    source источник
comment
Вы не должны публиковать повторяющиеся вопросы, даже если один относится к какой-либо технике, а другой — к определенной технике. Это все еще дубликат.   -  person RealSkeptic    schedule 27.03.2017
comment
@Nopslide вместо того, чтобы сказать, что он сломался, может показать ошибку, которая на самом деле происходит; может быть, это не связано.   -  person Eugene    schedule 27.03.2017
comment
Сообщение об ошибке @Eugene: Exception in thread "main" Throwable$WrappedPrintStream java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: Could not initialize class java.lang.invoke.CallSite at sun.net.www.protocol.http.HttpURLConnection.getNetProperty(Unknown So urce) at sun.net.www.protocol.http.HttpURLConnection.<clinit>(Unknown Source) Caused by: java.lang.NoClassDefFoundError: Could not initialize class java.lang.invoke.CallSite   -  person Nopslide    schedule 27.03.2017
comment
@Nopslide, как насчет того, чтобы задать новый вопрос?   -  person Eugene    schedule 27.03.2017


Ответы (1)