Dela via


Kontextoperator i Visual Studio-felsökningsprogrammet (C++)

Du kan använda kontextoperatorn i C++ för att kvalificera en brytpunktsplats, variabelnamn eller uttryck. Kontextoperatorn är användbar för att ange ett namn från ett yttre omfång som annars döljs av ett lokalt namn.

Syntax

Det finns två sätt att ange kontext:

  1. {,,[modul] } uttryck

    Klammerparenteserna måste innehålla två kommatecken och modulnamnet (körbar fil eller DLL) eller en fullständig sökväg.

    Om du till exempel vill ange en brytpunkt i SomeFunction funktionen EXAMPLE.dll:

    {,,EXAMPLE.dll}SomeFunction
    
  2. modul! uttryck

    EXAMPLE.dll!SomeFunction
    
  • modulen är namnet på en modul. Du kan använda en fullständig sökväg för att skilja mellan moduler med samma namn.

    Om modulsökvägen innehåller ett kommatecken, ett inbäddat utrymme eller en klammerparentes måste du använda citattecken runt sökvägen så att kontextparsern kan känna igen strängen korrekt. Enkla citattecken betraktas som en del av ett Windows-filnamn, så du måste använda dubbla citattecken. Ett exempel:

    {,,"a long, long, library name.dll"} g_Var
    
  • uttryck är ett giltigt C++-uttryck som matchar ett giltigt mål, till exempel ett funktionsnamn, variabelnamn eller pekaradress i modulen.

    När uttrycksutvärderaren stöter på en symbol i ett uttryck söker den efter symbolen i följande ordning:

  1. Lexikal omfång utåt, med början i det aktuella blocket, en serie med uttalanden inneslutna i klammerparenteser och fortsätter utåt med det omslutande blocket. Det aktuella blocket är koden som innehåller den aktuella platsen, instruktionspekarens adress.

  2. Funktionsomfång. Den aktuella funktionen.

  3. Klassomfång, om den aktuella platsen finns i en C++-medlemsfunktion. Klassomfånget omfattar alla basklasser. Uttrycksutvärderingen använder de normala dominansreglerna.

  4. Globala symboler i den aktuella modulen.

  5. Offentliga symboler i det aktuella programmet.