Metody prywatne są wredne.
Jednym z narzędzi, które napisałem do analizy naszego codebase'a (kilka milionów linii kodu w Java'ie) jest narzędzie, które pilnie analizuje programy i znajduje w nich miejsca gdzie tworzymy i wysyłamy message JMS i takie gdzie je odbieramy.
Przy 500 różnych rodzajach JMSów to pomaga.
Przygotowanie do analiza wygląda tak (powtarzamy dla wszystkich projektów):
- pobierz kod z repozytorium,
- skompiluj,
- zdekompiluj do "assemblera" JVM,
- zapisz cały zdekompilowany kod do pliku.
Kolejny tool analizuje tak zdekompilowany kod i znajduje wszystkie ciekawe miejsca (patrzy na wszystkie new, cast check i wszystkie invoke, wcześniej jeszcze patrzy na wszystkie extends i implements).
Sęk w tym, że wczoraj kolega zgłosił mi, że właśnie ma 1 miejsce gdzie JMS jest obsługiwany a UI tego nie pokazuje.....
Zrobiłem śledztwo i wyszła moja niewiedza.
Gdy dekompiluje się kod z .class to domyślnie dekompilowane są tylko metody publiczne, protected i domyślne.... nie ma dekompilacji metod prywatnych.....
Trzeba dodać -p w linii poleceń gdy używa się javap....
Z innych obserwacji, różne wersje Java'y mają inne formatowanie wyników javap'a.
Podobne postybeta
Jak walczyć z gigantycznym kodem w Java'ie, część 1 ;-)
Nie ufajcie mergerowi z Mercuriala...
DVD BtVS sezon 2
Me hacker - debuger dobry
Sztuczki tropiciela błędów, part 4
piątek, marca 04, 2016
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz