2010-09-06 16 views
9

Mogę dołączyć Visual Studio do pliku wykonywalnego, a następnie moje breakpointy zostaną wywołane.Jak działa debugowanie w Visual Studio?

Co się dzieje pod maską? Jaki mechanizm umożliwia uruchamianie moich punktów wstrzymania?

+0

", a następnie zostanie wywołany ten plik wykonywalny"? Masz na myśli, że twoje punkty przerwań zostają zwolnione? Kiedy dołączasz, ten plik wykonywalny * został już * wywołany, dlatego udało ci się dołączyć. :) –

+0

Tak, chcę wiedzieć, jak mój bp zostanie zwolniony. – user198729

+0

Czytając komentarz PO, widzę, że źle zredagowałem jego pytanie. Zmieniono. –

Odpowiedz

4

Istnieją dwa mechanizmy, które mogą być wykorzystane do realizacji punktów przerwań:

  • sprzętu, poprzez tworzenie specjalnych rejestrów w procesorze. Po napotkaniu instrukcji wskazanej w rejestrach specjalnych jako punktu przerwania, zgłaszany jest wyjątek, który jest przechwytywany przez debugger.
  • oprogramowanie, zastępując instrukcje instrukcjami "int 3" (patrz http://en.wikipedia.org/wiki/INT_(x86_instruction)). Instrukcja "int 3" przerywa również przepływ aplikacji, która jest przechwytywana przez debugger. Aby kontynuować aplikację, debugger tymczasowo przywróci oryginalną instrukcję.

Aby uzyskać więcej informacji, patrz http://en.wikipedia.org/wiki/Breakpoint.

+0

Które narzędzie wizualne jest używane, miękkie lub twarde? – user198729

+0

Jestem pewien, że Visual Studio używa twardych punktów przerwania (kiedyś otrzymałem komunikat o błędzie: sprzęt nie obsługuje monitorowania żądanej liczby bajtów). Nie jestem pewien co do miękkich punktów przełamania, ale zakładam, że VS również je wykorzystuje. – Patrick

Powiązane problemy