IXCLRDataProcess::Método FollowStub2
Dado um endereço que é um stub CLR (e potencialmente estado de um seguimento anterior), determine o próximo endereço de execução no qual verificar se o stub foi encerrado.
NOTA: Este método só está disponível se a revisão do processo como retornada por IXCLRDataProcess::Request
é pelo menos 7. Para revisões de processo mais baixas, os chamadores devem usar o método obsoleto IXCLRDataProcess::FollowStub
.
Nota
Esta API foi originalmente projetada para uso interno no tempo de execução. Embora agora seja suportado para uso de terceiros 3rd, recomendamos trabalhar com ICorDebug
e ICorProfiler
APIs quando possível.
Sintaxe
HRESULT FollowStub(
[in] IXCLRDataTask *task,
[in] ULONG32 inFlags,
[in] CLRDATA_ADDRESS inAddr,
[in] CLRDATA_FOLLOW_STUB_BUFFER *inBuffer,
[out] CLRDATA_ADDRESS *outAddr,
[out] CLRDATA_FOLLOW_STUB_BUFFER *outBuffer,
[out] ULONG32 *outFlags
);
Parâmetros
task
[em] A tarefa para a qual seguir o esboço.
inFlags
[em] Um conjunto de bandeiras descrevendo como seguir o esboço. Este deve ser um valor da CLRDataFollowStubInFlag
enumeração que atualmente contém apenas um valor: CLRDATA_FOLLOW_STUB_DEFAULT (0).
inAddr
[em] O endereço do esboço a seguir
inBuffer
[em] Um buffer de dados opaco usado internamente para manter o estado de andar uma cadeia de stubs. Isso deve ser NULL na chamada inicial para o FollowStub
método.
outAddr
[saídas] O próximo endereço de execução determinado a partir de seguir o esboço.
outBuffer
[saídas] Um buffer de dados opaco usado internamente para manter o estado de andar uma cadeia de stubs.
outFlags
[saídas] Um conjunto de bandeiras que descrevem o resultado de seguir o esboço. Este é um valor da CLRDataFollowStubOutFlag
enumeração. Se o valor for CLRDATA_FOLLOW_STUB_INTERMEDIATE
(0), o resultado é uma etapa intermediária no seguimento do stub e o chamador pode chamar FollowStub novamente. Se o valor for CLRDATA_FOLLOW_STUB_EXIT
(1), este é o fim da cadeia de stub e o é o outAddr
endereço de execução no final da cadeia.
Observações
Um determinado endereço pode ser determinado como sendo um stub ou não através do uso do IXCLRDataProcess::GetAddressType
método que retorna um tipo de CLRDATA_ADDRESS_RUNTIME_MANAGED_STUB
ou CLRDATA_ADDRESS_RUNTIME_UNMANAGED_STUB
.
O método fornecido faz parte da IXCLRDataProcess
interface e corresponde ao 48º slot da tabela de métodos virtuais.
Requisitos
Plataformas: Consulte Requisitos do sistema. Cabeçalho: Nenhuma Biblioteca: Nenhuma Versões do .NET Framework: Disponível desde 4.7