2010-09-06 7 views
9

Ich kann Visual Studio an eine ausführbare Datei anhängen, und dann werden meine Haltepunkte aufgerufen.Wie funktioniert das Debugging in Visual Studio?

Was passiert unter der Haube? Mit welchem ​​Mechanismus können meine Haltepunkte ausgelöst werden?

+0

"und dann wird diese ausführbare Datei aufgerufen"? Sie meinen, Ihre Haltepunkte werden gefeuert? Wenn Sie anhängen, wurde diese ausführbare Datei * bereits aufgerufen, deshalb konnten Sie sie anhängen. :) –

+0

Ja, ich möchte wissen, wie mein BP gefeuert wird. – user198729

+0

Als ich den OP-Kommentar gelesen habe, sehe ich, dass ich seine Frage schlecht bearbeitet habe. Geändert. –

Antwort

4

Es gibt zwei Mechanismen, die verwendet werden können Haltepunkte zu implementieren:

  • Hardware, durch spezielles Register in dem Prozessor zu setzen. Wenn die in den Spezialregistern angegebene Anweisung als Haltepunkt auftritt, wird eine Ausnahme ausgelöst, die vom Debugger abgefangen wird.
  • Software, durch Ersetzen von Anweisungen durch "Int 3" Anweisungen (siehe http://en.wikipedia.org/wiki/INT_(x86_instruction)). Die Anweisung "int 3" unterbricht auch den Fluss der Anwendung, der vom Debugger abgefangen wird. Um die Anwendung fortzusetzen, legt der Debugger die ursprüngliche Anweisung vorübergehend zurück.

Weitere Informationen finden Sie unter http://en.wikipedia.org/wiki/Breakpoint.

+0

Was ist visuelles Studio, weich oder hart? – user198729

+0

Ich bin sicher, dass Visual Studio harte Haltepunkte verwendet (ich habe einmal die Fehlermeldung erhalten: die Hardware unterstützt nicht die Überwachung der angeforderten Anzahl von Bytes). Nicht sicher über weiche Breakpoints, aber ich nehme an, dass VS diese auch verwendet. – Patrick

Verwandte Themen