Dela via


Pseudovariables i Visual Studio-felsökningsprogrammet

Pseudovariables är termer som används för att visa viss information i ett variabelfönster eller i dialogrutan QuickWatch . Du kan ange en pseudovariabel på samma sätt som du anger en normal variabel. Pseudovariables är dock inte variabler och motsvarar inte variabelnamn i programmet.

Example

Anta att du skriver ett internt kodprogram och vill se antalet handtag som allokerats i ditt program. I bevakningsfönstret kan du ange följande pseudovariable i kolumnen Namn och sedan trycka på Retur för att utvärdera det:

$handles

I intern kod kan du använda pseudovariables som visas i följande tabell:

Pseudovariabel Funktion
$err Visar det senaste felvärde som har satts av funktionen SetLastError. Värdet som visas representerar vad som skulle returneras av funktionen GetLastError.

Använd $err,hr för att se den avkodade formen av det här värdet. Om det senaste felet till exempel var 3 skulle det $err,hr visa ERROR_PATH_NOT_FOUND : The system cannot find the path specified.
$handles Visar antalet handtag som allokerats i ditt program.
$vframe Visar adressen till den aktuella stackramen.
$tid Visar tråd-ID för den aktuella tråden.
$env Visar miljöblocket i strängvisningsprogrammet.
$cmdline Visar kommandoradssträngen som startade programmet.
$pid Visar process-ID.
$ registername

eller

@ registername
Visar innehållet i registrets registernamn.

Normalt kan du visa registerinnehåll bara genom att ange registernamnet. Den enda gången du behöver använda den här syntaxen är när registernamnet överbelastar ett variabelnamn. Om registernamnet är samma som ett variabelnamn i det aktuella omfånget tolkar felsökningsprogrammet namnet som ett variabelnamn. Det är då $registernamn eller @registernamn är praktiskt.
$clk Visar tiden i klockcykler.
$user Visar en struktur med kontoinformation för det konto som kör programmet. Av säkerhetsskäl visas inte lösenordsinformationen.
$exceptionstack Visar stackspårningen för det aktuella Windows Runtime-undantaget. $ exceptionstack fungerar endast i UWP-appar. $ exceptionstack stöds inte för C++ och SEH-undantag
$returnvalue Visar returvärdet för en metod.

I C# kan du använda pseudovariables som visas i följande tabell:

Pseudovariabel Funktion
$exception Visar information om det senaste undantaget. Om inget undantag har inträffat visas ett felmeddelande vid utvärdering $exception .

När $exception är inaktiverad läggs automatiskt till i fönstret Lokala när ett undantag inträffar.
$user Visar en struktur med kontoinformation för det konto som kör programmet. Av säkerhetsskäl visas inte lösenordsinformationen.
$returnvalue Visar returvärdet för en .NET-metod.
$threadSmallObjectHeapBytes Visar det totala antalet byte som allokerats i den lilla objekthögen av den aktuella tråden. (.NET 6+)
$threadUserOldHeapBytes Visar det totala antalet byte som allokerats i användarens gamla heap av den aktuella tråden. User Old Heap = Large Object Heap + Pinned Object Heap (.NET 6+)

I Visual Basic kan du använda pseudovariables som visas i följande tabell:

Pseudovariabel Funktion
$exception Visar information om det senaste undantaget. Om inget undantag har inträffat visas ett felmeddelande vid utvärdering $exception .
$delete eller $$delete Tar bort en implicit variabel som skapades i fönstret Omedelbart . Syntaxen är $delete,variabel eller$delete,variabel.
$objectids eller $listobjectids Visar alla aktiva objekt-ID:er som underordnade till det angivna uttrycket. Syntaxen är $objectid,uttryck eller$listobjectids,uttryck.
$ N# Visar objekt med objekt-ID lika med N.
$dynamic Visar den särskilda noden Dynamisk vy för ett objekt som implementerar IDynamicMetaObjectProvider. Gränssnitt. Syntaxen är $dynamic,objekt. Den här funktionen gäller endast för kod som använder .NET Framework version 4 eller senare.