Partilhar via


Encadeadas desenrolar estruturas de informações

Se o sinalizador UNW_FLAG_CHAININFO for definido, em seguida, uma estrutura de informações de desenrolamento é o secundário, e o campo de endereço de exceção-manipulador/encadeadas-info compartilhado contém as informações de desenrolamento primário. O seguir recupera de código principal desenrolar informações, assumindo que unwindInfo é a estrutura que possui o conjunto de sinalizador UNW_FLAG_CHAININFO.

PRUNTIME_FUNCTION primaryUwindInfo = (PRUNTIME_FUNCTION)&(unwindInfo->UnwindCode[( unwindInfo->CountOfCodes + 1 ) & ~1]);

Info encadeada é útil em duas situações. Primeiro, ele pode ser usado para os segmentos de código não-contíguos. Usando as informações encadeada, você pode reduzir o tamanho das informações necessárias de desenrolamento, porque você não tem que duplicar a matriz de códigos de desenrolamento da info desenrolamento primário.

Você também pode usar informações encadeadas para agrupar registro volátil salva. O compilador pode atrasar salvar alguns registradores voláteis até que ela esteja fora do prólogo de entrada de função. Você poderá registrar isso tendo info de desenrolamento primária para a parte da função antes do código agrupado e, em seguida, configurando encadeadas info com um tamanho diferente de zero de prólogo, onde os códigos de desenrolamento em informações encadeada refletem salva dos registradores não-volátil. Nesse caso, os códigos de desenrolamento são todas as instâncias de UWOP_SAVE_NONVOL. Não há um agrupamento que salva os registros não-volátil usando um envio ou modifica os arquivos de .rsp de MSBuild usando uma alocação de pilha de fixo adicionais.

Um item UNWIND_INFO que tem o UNW_FLAG_CHAININFO definida pode conter uma entrada RUNTIME_FUNCTION item cujo UNWIND_INFO também tem UNW_FLAG_CHAININFO definido (vários shrink-wrapping). Eventualmente, o encadeado desenrolar info ponteiros chegarão em um item UNWIND_INFO tem UNW_FLAG_CHAININFO desmarcada; Este é o item principal de UNWIND_INFO, que aponta para o ponto de entrada do procedimento real.

Consulte também

Referência

Desenrolar dados para manipulação de exceção, suporte a depurador