Método IXCLRDataProcess::FollowStub2
Dado um endereço que é um stub CLR (e potencialmente estado de um acompanhamento anterior), determine o próximo endereço de execução no qual verificar se o stub foi encerrado.
NOTA: Este método só estará disponível se a revisão do processo retornada por IXCLRDataProcess::Request
for pelo menos 7. Para revisões de processo inferiores, os chamadores devem usar o método obsoleto IXCLRDataProcess::FollowStub
.
Observação
Essa API foi originalmente desenvolvida para uso interno no runtime. Embora ela agora tenha suporte para uso de terceiros, recomendamos trabalhar com as APIs ICorDebug
e ICorProfiler
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 stub.
inFlags
[em] Um conjunto de sinalizadores que descrevem 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 caminhada de uma cadeia de stubs. Isso deve ser NULL na chamada inicial para o FollowStub
método.
outAddr
[fora] O próximo endereço de execução determinado a partir do stub.
outBuffer
[fora] Um buffer de dados opaco usado internamente para manter o estado de caminhada de uma cadeia de stubs.
outFlags
[fora] Um conjunto de sinalizadores 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 será uma etapa intermediária após o stub e o chamador poderá chamar FollowStub novamente. Se o valor for CLRDATA_FOLLOW_STUB_EXIT
(1), este é o final da cadeia de stub e o outAddr
é o endereço de execução no final da cadeia.
Comentários
Um determinado endereço pode ser determinado como um stub ou não por meio 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: confira Requisitos do sistema. Cabeçalho: nenhum Biblioteca: nenhuma Versões do .NET Framework: disponíveis desde 4.7