Freigeben über


Gewusst wie: Einzelschritte in "Nur mein Code"

Aktualisiert: November 2007

Dieses Thema gilt für folgende Anwendungsbereiche:

Edition

Visual Basic

C#

C++

Web Developer

Express

Nur verwaltet

Standard

Nur verwaltet

Pro und Team

Nur verwaltet

Tabellenlegende:

Vorhanden

Nicht vorhanden

Befehl oder Befehle, die standardmäßig ausgeblendet sind.

Gelegentlich möchten Sie vielleicht während des Debuggens nur den Code betrachten, den Sie selbst geschrieben haben, und anderen Code (z. B. Systemaufrufe) ignorieren. Sie können dazu die Debugoption Nur mein Code verwenden. Mit der Option Nur mein Code wird nicht-benutzerseitiger Code verborgen, sodass dieser Code in den Debuggerfenstern nicht angezeigt wird. Beim Durchführen von Einzelschritten geht der Debugger den nicht-benutzerseitigen Code durch, hält bei der Ausführung dieses Codes jedoch nicht an.

Bei Verwendung der Option Nur mein Code werden drei Dinge untersucht, um Benutzercode ("Mein Code") von nicht-benutzerseitigem Code zu unterscheiden: DBG-Dateien, PDB-Dateien und die Optimierung.

Bei einem standardmäßigen Debugbuild ist die Optimierung deaktiviert, und es werden Debugsymbole für alle Module erstellt. Bei der Ausführung eines Debugbuilds werden diese Module als Bestandteil von Mein Code angesehen. Wird jedoch eine Bibliotheksfunktion aufgerufen, die optimiert ist und keine Debugsymbole enthält, wird diese Funktion nicht als Bestandteil von Mein Code angesehen. Nur mein Code verhindert, dass während der Ausführung an Haltepunkten im Bibliothekscode angehalten wird. Normalerweise ist dies Code, der beim Debuggen nicht interessant ist. Im Fenster Haltepunkte werden diese Haltepunkte mit dem Symbol für deaktivierte Haltepunkte angezeigt.

Um den gesamten Code anzuzeigen und an allen Haltepunkten anzuhalten, kann die Debugoption Nur mein Code über das Dialogfeld Optionen deaktiviert werden.

Drei Attribute beeinflussen zusätzlich, was vom Debugger als Mein Code angesehen wird: DebuggerNonUserCodeAttribute weist den Debugger an, dass der vorliegende Code nicht Mein Code ist. DebuggerHiddenAttribute verbirgt den Code vor dem Debugger, selbst wenn Nur mein Code deaktiviert ist. DebuggerStepThroughAttribute veranlasst den Debugger, den vorliegenden Code nicht in Einzelschritten, sondern in Prozedurschritten zu durchlaufen.

Wenn Nur mein Code aktiviert wird, ist es möglich, im Menü Debuggen die Option Unterbrechen auszuwählen und die Ausführung an einer Stelle anzuhalten, an der kein Mein Code vorhanden ist. In diesem Fall wird kein Code angezeigt. Wenn Sie außerdem einen Schritt-Befehl auswählen, gelangen Sie zur nächsten Zeile von Mein Code.

Programmgesteuerte Break-Anweisungen (z. B. Stop-Anweisungen in Visual Basic) werden unterschiedlich behandelt. Der Debugger wird bei diesen Anweisungen immer unterbrochen, auch dann, wenn Nur mein Code aktiviert ist. In diesem Fall wird kein verborgener, sondern nicht-benutzerseitiger Code angezeigt, aber durch die schrittweise Ausführung gelangen Sie nach wie vor vom nicht-benutzerseitigen Code zur nächsten Zeile von Mein Code.

Hinweis:

Nur mein Code wird in Geräteprojekten nicht unterstützt.

So aktivieren oder deaktivieren Sie die Debugoption "Nur mein Code"

  1. Wählen Sie im Menü Extras den Befehl Optionen aus.

  2. Öffnen Sie im Dialogfeld Optionen den Knoten Debuggen, und wählen Sie dann Allgemein aus.

  3. Aktivieren oder deaktivieren Sie Nur meinen Code aktivieren.

Siehe auch

Konzepte

Ausführungskontrolle

Referenz

DebuggerNonUserCodeAttribute

DebuggerHiddenAttribute

DebuggerStepThroughAttribute