Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können den Kontextoperator in C++ verwenden, um einen Haltepunktspeicherort, Variablennamen oder Ausdruck zu qualifizieren. Der Kontextoperator ist nützlich, um einen Namen aus einem äußeren Bereich anzugeben, der andernfalls durch einen lokalen Namen ausgeblendet ist.
Syntax
Es gibt zwei Möglichkeiten zum Angeben des Kontexts:
{,,[Modul] } Ausdruck
Die geschweiften Klammern müssen zwei Kommas und den Namen des Moduls (ausführbare Datei oder DLL) oder den vollständigen Pfad enthalten.
So legen Sie beispielsweise einen Haltepunkt an der
SomeFunctionFunktion vonEXAMPLE.dll:{,,EXAMPLE.dll}SomeFunctionModul! Ausdruck
EXAMPLE.dll!SomeFunction
Modul ist der Name eines Moduls. Sie können einen vollständigen Pfad verwenden, um zwischen Modulen mit demselben Namen zu unterscheiden.
Wenn der Modulpfad ein Komma, ein eingebettetes Leerzeichen oder eine geschweifte Klammer enthält, müssen Sie Anführungszeichen um den Pfad verwenden, damit der Kontextparser die Zeichenfolge ordnungsgemäß erkennen kann. Einfache Anführungszeichen werden als Teil eines Windows-Dateinamens betrachtet, daher müssen Sie doppelte Anführungszeichen verwenden. Beispiel:
{,,"a long, long, library name.dll"} g_VarAusdruck ist ein beliebiger gültiger C++-Ausdruck, der in ein gültiges Ziel aufgelöst wird, z. B. einen Funktionsnamen, einen Variablennamen oder eine Zeigeradresse im Modul.
Wenn der Ausdrucksauswerter auf ein Symbol in einem Ausdruck trifft, wird in der folgenden Reihenfolge nach dem Symbol gesucht:
Der lexikalische Gültigkeitsbereich erstreckt sich nach außen, beginnend mit dem aktuellen Block, einer Anweisungsreihe, die in geschweiften Klammern eingeschlossen ist, und setzt sich mit dem umgebenden Block nach außen fort. Der aktuelle Block ist der Code, der die aktuelle Position und die Befehlszeigeradresse enthält.
Funktionsbereich. Die aktuelle Funktion.
Klassenbereich, wenn sich die aktuelle Position in einer C++-Memberfunktion befindet. Der Klassenbereich enthält alle Basisklassen. Der Ausdrucksauswerter verwendet die normalen Dominanzregeln.
Globale Symbole im aktuellen Modul.
Öffentliche Symbole im aktuellen Programm.