2012-10-29 12 views
16

nauczyłem programowanie przez kilka lat, a stosowane debug frequently.But ja nadal nie rozumiem zasadę rdzenia z debugowania, jak to działa? W jaki sposób przypalić linia debugowania (krok do) wdrożenia?Jaka jest zasada debugowania?

na przykład pobierz java language.

Co robi procesor do wdrożenia debugowania?

co robi JVM do wdrożenia debugowania?

co robi zaćmienie do wdrożenia debugowania?

Może być trzy rzeczy wymienione powyżej nie mają nic wspólnego z debugowania. Tylko go odgadłem. Miałem google przez jakiś czas i nie zyskałem nic użytecznego dla mnie (oczywiście, samo debugowanie jest skomplikowane), mam nadzieję prostszą interpretację.

Dzięki.

+3

Dla porównania: http://docs.oracle. com/javase/1.4.2/docs/guide/jpda/architecture.html Czytanie o JPDA powinno odpowiedzieć na pytanie, co robi JVM dla implementacji Debugowania. –

Odpowiedz

10

Każdy procesor ma własną konstrukcję mechanizmu debugowania.

W przypadku procesora x86 procesor ma 6 rejestrów debugowania, w których przechowywane są punkty przerwania i warunki przerwania debugowania. Mają krótkie spojrzenie na ten artykuł dla Intel x86 mechanizm debugowania CPU: http://en.wikipedia.org/wiki/X86_debug_register

dla przypadku mechanizm debugowania Java, zobacz: http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html jak podkreślił mukul Goel w strumieniu komentarz pod pytaniem.

+1

Ładne informacje! –

1

Aby ułatwić debugowanie (za pomocą punktów przerwania itp.), Kompilator wstawia pewne dodatkowe informacje do wygenerowanego przez siebie wyjścia (tj. Plik binarny lub plik kodu JVM w przypadku Javy). Ta dodatkowa informacja umożliwia mapowanie każdej linii skompilowanego wyjścia do odpowiedniego pliku źródłowego.

Nie odpowiedziałem na wszystkie części pytania, ale mam nadzieję, że pomogę Ci zacząć. Sprawdź te zasoby:

http://en.wikipedia.org/wiki/Debug_symbol

How does a debugger work?

Powiązane problemy