Jazyk

Pseudovariables v ladicím programu sady Visual Studio

Pseudovariables jsou pojmy, které slouží k zobrazení určitých informací v okně s proměnnými 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.

Example

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:

Pseudoproměnná Funkce
$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 současného zásobníkového rámce.
$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 se název registru shoduje s názvem proměnné v aktuálním oboru, ladicí program tento název interpretuje jako proměnnou. To je ten okamžik, 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:

Pseudoproměnná Funkce
$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ý, automaticky se $exception 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 aktuálním vláknem v uživatelské staré haldě. 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:

Pseudoproměnná Funkce
$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ší.