Mapear todos os métodos chamados pela JVM, em tempo de execução, como?

Bom dia pessoal.

Tenho uma aplicação WEB rodando via Tomcat, através do Eclipse. Estou trabalhando num projeto agora cujo código passa de 100 classes específicas do cliente. Gostaria de saber se existe algum framework/plugin ou comando da JVM que me mostre todos os métodos que são chamados em tempo de execução, ou seja… imagine que eu clico na tela de login do sistema, que é um JSP que chama uma classe Java. Gostaria que essa ferramenta me mostrasse todos os métodos que estão sendo chamados internamente na JVM.

Estou precisando disso pra me localizar mais rapidamente no código, ou seja, eu clico em uma tela e já sei qual método foi chamado.

Entenderam? Seria algo bem hardcore mesmo. Acredito que isso se chama “tracing”, já li algumas coisas mas nao consegui fazer nada funcionar.

Obrigado!

Bom dia.
O caminho é esse aqui:

for ( StackTraceElement ste : Thread.currentThread().getStackTrace() ) { String nomeClasse = ste.getClassName(); String nomeMetodo = ste.getMethodName(); int numeroLinha = ste.getLineNumber(); System.out.println( nomeClasse + "." + nomeMetodo + ":" + numeroLinha ); }

Vc pode usar um Debugger e analisar com breakpoints qual a stack da sua ação.

Outra forma é ver se um profiler não informa o que vc deseja no seu intimo, com esta pergunta (que deve ser - o que demora mais nesse sistema).

Dê uma procurada por java agents, ou use AOP - se quiser construir seu próprio mecanismo para checar.

Ou então, use um bom profiler.

[]´s

[quote=hypper]Bom dia pessoal.

Tenho uma aplicação WEB rodando via Tomcat, através do Eclipse. Estou trabalhando num projeto agora cujo código passa de 100 classes específicas do cliente. Gostaria de saber se existe algum framework/plugin ou comando da JVM que me mostre todos os métodos que são chamados em tempo de execução, ou seja… imagine que eu clico na tela de login do sistema, que é um JSP que chama uma classe Java. Gostaria que essa ferramenta me mostrasse todos os métodos que estão sendo chamados internamente na JVM.

Estou precisando disso pra me localizar mais rapidamente no código, ou seja, eu clico em uma tela e já sei qual método foi chamado.

Entenderam? Seria algo bem hardcore mesmo. Acredito que isso se chama “tracing”, já li algumas coisas mas nao consegui fazer nada funcionar.

[/quote]

Humm… embora o seu problema seja outro ( falta de conhecimento do projeto) para fazer o tracing vc usa um profiler.
Mas como disse, o seu problema é outro… se vc estudar o projeto com calma e usar um debugger aqui e ali, vc vai saber como funciona sem usar o profiler

Nossa, tinha entendido outra coisa…