Pseudovariables v ladicím programu sady Visual Studio

Pseudovariables jsou termíny, které slouží k zobrazení určitých informací v okně proměnné nebo v dialogovém okně QuickWatch . Můžete zadat pseudovariable stejným způsobem, jakým byste zadali normální proměnnou. Pseudovariables nejsou proměnné, ale neodpovídají názvům proměnných v programu.

Příklad

Předpokládejme, že píšete nativní aplikaci kódu a chcete zobrazit počet popisovačů přidělených ve vaší aplikaci. V okně Kukátko můžete do sloupce Název zadat následující pseudovariable a potom ho vyhodnotit stisknutím klávesy Return:

$handles

V nativním kódu můžete použít pseudovariables uvedené v následující tabulce:

Pseudovariable Function
$err Zobrazí poslední chybovou hodnotu nastavenou funkcí SetLastError. Zobrazená hodnota představuje, co by vrátila funkce GetLastError.

Umožňuje $err,hr zobrazit dekódovanou formu této hodnoty. Pokud by například poslední chyba byla 3, zobrazilo by se $err,hrERROR_PATH_NOT_FOUND : The system cannot find the path specified.
$handles Zobrazí počet popisovačů přidělených v aplikaci.
$vframe Zobrazí adresu aktuálního rámce zásobníku.
$tid Zobrazí ID vlákna pro aktuální vlákno.
$env Zobrazí blok prostředí v prohlížeči řetězců.
$cmdline Zobrazí řetězec příkazového řádku, který program spustil.
$pid Zobrazí ID procesu.
$registername

nebo

@registername
Zobrazí obsah názvu registru.

Za normálních okolností můžete obsah registru zobrazit jenom zadáním názvu registru. Jedinou dobou, kterou je potřeba použít tuto syntaxi, je, když název registru přetíží název proměnné. Pokud je název registru stejný jako název proměnné v aktuálním oboru, ladicí program interpretuje název jako název proměnné. To je, když $název registru nebo @název registru přijde vhod.
$clk Zobrazí čas v cyklech hodin.
$user Zobrazí strukturu s informacemi o účtu, na kterém běží aplikace. Z bezpečnostních důvodů se informace o hesle nezobrazují.
$exceptionstack Zobrazí trasování zásobníku aktuální výjimky prostředí Windows Runtime. $ exceptionstack funguje jenom v aplikacích pro UPW. $ exceptionstack nepodporuje výjimky C++ a SEH.
$returnvalue Zobrazí návratovou hodnotu metody.

V jazyce C# můžete použít pseudovariables uvedené v následující tabulce:

Pseudovariable Function
$exception Zobrazí informace o poslední výjimce. Pokud nedošlo k žádné výjimce, zobrazí se $exception při vyhodnocování chybová zpráva.

Když je Pomocník s výjimkami zakázaný, $exception automaticky se přidá do okna Místní hodnoty , když dojde k výjimce.
$user Zobrazí strukturu s informacemi o účtu, na kterém běží aplikace. Z bezpečnostních důvodů se informace o hesle nezobrazují.
$returnvalue Zobrazí návratovou hodnotu metody .NET.
$threadSmallObjectHeapBytes Zobrazí celkový počet bajtů přidělených v malé haldě objektu aktuálním vláknem. (.NET 6+)
$threadUserOldHeapBytes Zobrazí celkový počet bajtů přidělených ve staré haldě uživatele aktuálním vláknem. User Old Heap = Large Object Heap + Pinned Object Heap (.NET 6+)

V jazyce Visual Basic můžete použít pseudovariables uvedené v následující tabulce:

Pseudovariable Function
$exception Zobrazí informace o poslední výjimce. Pokud nedošlo k žádné výjimce, zobrazí se $exception při vyhodnocování chybová zpráva.
$delete nebo $$delete Odstraní implicitní proměnnou vytvořenou v okně Okamžité . Syntaxe je $delete,proměnná nebo$delete,proměnná..
$objectids nebo $listobjectids Zobrazí všechna ID aktivních objektů jako podřízené položky zadaného výrazu. Syntaxe je $objectid,výraz nebo$listobjectids,výraz..
$N# Zobrazí objekt s ID objektu, které se rovná N.
$dynamic Zobrazí speciální uzel dynamického zobrazení pro objekt, který implementuje IDynamicMetaObjectProvider. Rozhraní. Syntaxe je $dynamic,objekt. Tato funkce se vztahuje pouze na kód, který používá rozhraní .NET Framework verze 4 nebo novější.