Sdílet prostřednictvím


StackSnapshotCallback – funkce

Poskytuje profileru informace o každém spravovaném rámci a každém spuštění nespravovaných rámců v zásobníku během procházení zásobníku, který je inicializován ICorProfilerInfo2::D oStackSnapshot metoda.

Syntaxe

HRESULT __stdcall StackSnapshotCallback (  
    [in] FunctionID funcId,  
    [in] UINT_PTR ip,  
    [in] COR_PRF_FRAME_INFO frameInfo,  
    [in] ULONG32 contextSize,  
    [in] BYTE context[],  
    [in] void *clientData  
);  

Parametry

funcId
[v] Pokud je tato hodnota nula, toto zpětné volání je pro spuštění nespravovaných rámců; v opačném případě se jedná o identifikátor spravované funkce a toto zpětné volání je určené pro spravovaný rámec.

ip
[v] Hodnota ukazatele nativní instrukce kódu v rámci.

frameInfo
[v] Hodnota COR_PRF_FRAME_INFO , která odkazuje na informace o rámci zásobníku. Tato hodnota je platná pro použití pouze během tohoto zpětného volání.

contextSize
[v] Velikost CONTEXT struktury, na kterou odkazuje context parametr.

context
[v] Ukazatel na strukturu Win32 CONTEXT , která představuje stav procesoru pro tento rámec.

Parametr context je platný pouze v případě, že byl příznak COR_PRF_SNAPSHOT_CONTEXT předán v ICorProfilerInfo2::DoStackSnapshotsouboru .

clientData
[v] Ukazatel na data klienta, který se předává přímo z ICorProfilerInfo2::DoStackSnapshot.

Poznámky

Funkci StackSnapshotCallback implementuje zapisovač profileru. Je nutné omezit složitost práce provedené v nástroji StackSnapshotCallback. Například při asynchronním použití ICorProfilerInfo2::DoStackSnapshot může cílové vlákno držet zámky. Pokud kód v rámci StackSnapshotCallback vyžaduje stejné zámky, mohlo by dojít k vzájemnému zablokování.

Metoda ICorProfilerInfo2::DoStackSnapshot volá StackSnapshotCallback funkci jednou za spravovaný rámec nebo jednou za spuštění nespravovaných snímků. Pokud StackSnapshotCallback se volá pro spuštění nespravovaných rámců, profiler může použít kontext registru (odkazovaný parametrem context ) k provedení vlastního nespravovaného procházení zásobníku. V tomto případě struktura Win32 CONTEXT představuje stav procesoru pro naposledy vložený rámec v rámci spuštění nespravovaných rámců. Přestože struktura Win32 CONTEXT obsahuje hodnoty pro všechny registry, měli byste spoléhat pouze na hodnoty registru ukazatele zásobníku, registru ukazatele rámce, registru ukazatele instrukce a nevolatilních (tj. zachovaných) celočíselných registrů.

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: CorProf.idl

Knihovny: CorGuids.lib

Verze rozhraní .NET Framework: K dispozici od verze 1.0

Viz také