StackSnapshotCallback (Función)
Proporciona al generador de perfiles información sobre cada marco administrado y cada ejecución de los marcos no administrados de la pila durante un recorrido de pila, iniciado por el método ICorProfilerInfo2::DoStackSnapshot.
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
);
Parámetros
funcId
[in] Si este valor es cero, esta devolución de llamada es para una ejecución de cuadros no administrados; de lo contrario, es el identificador de una función administrada y esta devolución de llamada es para un cuadro administrado.ip
[in] El valor del puntero de instrucción de código nativo en el marco.frameInfo
[in] Valor COR_PRF_FRAME_INFO que hace referencia a información acerca del marco de pila. Este valor solamente es válido para el uso durante esta devolución de llamada.contextSize
[in] Tamaño de la estructura CONTEXT, a la que hace referencia el parámetro context.context
[in] Puntero a una estructura CONTEXT de Win32 que representa el estado de la CPU para este cuadro.El parámetro context solamente es válido si se pasó el marcador COR_PRF_SNAPSHOT_CONTEXT en el parámetro ICorProfilerInfo2::DoStackSnapshot.
clientData
[in] Puntero a los datos del cliente, que se pasa directamente desde ICorProfilerInfo2::DoStackSnapshot.
Comentarios
El sistema de escritura del generador de perfiles implementa la función StackSnapshotCallback. Debe limitar la complejidad del trabajo realizado en StackSnapshotCallback. Por ejemplo, al utilizar ICorProfilerInfo2::DoStackSnapshot de una manera asincrónica, el subproceso de destino puede estar reteniendo bloqueos. Si el código de StackSnapshotCallback requiere los mismos bloqueos, puede producirse un interbloqueo.
El método ICorProfilerInfo2::DoStackSnapshot llama a la función StackSnapshotCallback una vez por cuadro administrado o una vez por ejecución de cuadros no administrados. Si se llama a StackSnapshotCallback para una ejecución de marcos no administrados, el generador de perfiles puede utilizar el contexto del registro (al que hace referencia el parámetro context) para realizar un recorrido de pila propio. En este caso, la estructura de Win32 CONTEXT representa el estado de la CPU para el marco insertado más recientemente en la ejecución de marcos no administrados. Aunque la estructura CONTEXT de Win32 incluye valores para todos los registros, solamente se debe confiar en los valores del registro del puntero de pila, el registro de puntero de fotograma, el registro del puntero de instrucción y los registros enteros no volátiles (es decir, conservados).
Requisitos
Plataformas: vea Requisitos de sistema de .NET Framework.
Encabezado: CorProf.idl
Biblioteca: CorGuids.lib
Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0
Vea también
Referencia
ICorProfilerInfo2::DoStackSnapshot (Método)