Hej,
Napisałem dodatek do Atari800Win - Profiler kodu wygenerowanego przez CC65 wraz z "podglądem źródeł".
Profilowanie odbywa się na podstawie wygenerowanych plików .lst i .label.
http://img10.imageshack.us/img10/1729/profilerr.png
Z tego powodu kody w C nie są potrzebne i można go używać też przy pisaniu w ASMie.
Dodałem komendy w Monitorze:
PSTART [1] - uruchomienie profilera. Parametr 1 powoduje profilowanie kodu wykonywanego z całej pamięci, nie tylko znanego z plików .lst. Przydatne przy nie korzystaniu wyłącznie z C.
PEND/PSTOP - zatrzymanie i zapisanie wyników.
PRESET - wyzerowanie liczników profilera (automatyczne przy resecie)
Jako GUI wykorzystałem lekko przerobiony profiler Sleepy.
Mój profiler działa podobnie jak Sleepy - co określony interwał sprawdza na jaki adres wskazuje rejestr PC, a następnie przelicza to na postać czytelną. Aktualnie działa na GetTicksCount, ale warto by go zsynchronizować z czasem emulowanego Atari, co umożliwiałoby profilowanie kodu podczas Full Speed.
Inną możliwością jest zliczanie wszystkich wykonywanych instrukcji, ale nie uwzględniałoby to cykli procesora. Wynik precyzyjnie pokazuje za to która instrukcja ile razy została wykonana.
Ktoś jest zainteresowany binarką, źródłami, diffem?