Lo que me gustaría hacer es escanear un conjunto de clases Java y rastrear todas las llamadas a métodos desde un método específico de una clase abstracta, y dentro de ese contexto, crear una lista de todos los códigos que realiza alguna operación (en este caso, crea una instancia de una cierta clase). Quiero saber el número de línea y los argumentos proporcionados.Análisis estático del gráfico de llamadas Java
¿He comenzado a buscar en BCEL, pero parece que no tiene incorporado el trazado de gráficos de llamada? No estoy seguro de escribir el mío porque la sobrecarga, el tipo de firmas y el envío polimórfico pueden ser complicados.
Casi esperaba una herramienta o código de ejemplo, pero no he encontrado nada todavía. Realmente parece que estoy a punto de reinventar una rueda. Pero si lo hago será una rueda de código abierto y estará disponible en GitHub ;-)
PD: Encontrará la pregunta existente "How to Generator a Java Call Graph", porque suena idéntica, pero no es para nada lo que necesito.
En realidad, parece que la segunda parte de la respuesta aceptada (sobre la búsqueda de todas las referencias) es, de hecho, lo que desea. –
Necesito un código que hace esto como parte de un proceso automatizado. –
Mark, ¿entendieron esto trabajando con Soot? Desafortunadamente no tuve éxito porque no pude establecer el punto de entrada con éxito en una clase que no tiene un método principal. ¿Cómo te ha ido con esto? – Joeblackdev