Co chcę zrobić, to zeskanować zestaw klas Javy i śledzić wszystkie wywołania metod z określonej metody klasy abstrakcyjnej iw tym kontekście utworzyć listę wszystkich kodów, które wykonuje pewną operację (w tym przypadku tworzy instancję pewnej klasy). Chcę wiedzieć, numer wiersza i podane argumenty.Analiza statyczna wykresu wywołań Java
Zacząłem patrzeć na BCEL, ale wydaje się, że nie ma wbudowanego śledzenia połączeń? Waham się pisać samemu, ponieważ uzyskanie przeciążenia, podpisów typu i wysyłania polimorfów może być trudne.
W połowie oczekiwałem istnienia narzędzia lub kodu przykładowego, ale jeszcze nie znalazłem. Naprawdę czuję, że mam zamiar wymyślić koło. Ale jeśli to zrobię, będzie to otwarte koło źródłowe i dostępne na GitHub ;-)
PS: Znajdziesz pytanie "How to Generator a Java Call Graph", ponieważ brzmi to identycznie, ale to wcale nie jest to, czego potrzebuję.
W rzeczywistości wygląda na to, że druga część zaakceptowanej odpowiedzi (o znalezienie wszystkich referencji) jest w rzeczywistości tym, czego potrzebujesz. –
Potrzebuję kodu, który robi to jako część automatycznego procesu. –
Mark, czy każdy z was pracował z sadzą? Niestety nie udało mi się, ponieważ nie udało mi się pomyślnie ustawić punktu wejścia w klasie, która nie ma głównej metody. Jak sobie z tym poradziłeś? – Joeblackdev