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,hr ERROR_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. |
$ registernamenebo @ 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ší. |