Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se il flag UNW_FLAG_CHAININFO è impostato, una struttura UNWIND_INFO è una struttura secondaria e il campo indirizzo condiviso del gestore eccezioni o della struttura UNWIND_INFO concatenata contiene le informazioni di rimozione primarie.Il codice seguente recupera le informazioni UNWIND principali, presupponendo che unwindInfo sia la struttura con il flag UNW_FLAG_CHAININFO impostato.
PRUNTIME_FUNCTION primaryUwindInfo = (PRUNTIME_FUNCTION)&(unwindInfo->UnwindCode[( unwindInfo->CountOfCodes + 1 ) & ~1]);
La struttura UNWIND_INFO concatenata risulta utile in due situazioni.Innanzitutto può essere utilizzata per i segmenti di codice non contigui.L'utilizzo di questa struttura consente di ridurre la dimensione delle voci UNWIND_INFO richieste, poiché non è necessario duplicare la matrice dei codici di rimozione dalla struttura UNWIND_INFO principale.
È possibile utilizzare anche informazioni concatenate per raggruppare i salvataggi dei registri volatili.Il compilatore può ritardare il salvataggio di alcuni registri volatili finché non esce dal prologo della voce di funzione.È possibile registrare la voce UNWIND_INFO principale relativa alla parte della funzione prima del codice raggruppato e quindi impostare la struttura UNWIND_INFO concatenata con una dimensione del prologo diversa da zero, dove i codici di rimozione in tale struttura riflettono le operazioni di salvataggio dei registri non volatili.In tal caso, tutti i codici di rimozione sono istanze di UWOP_SAVE_NONVOL.Un raggruppamento che salva i registri non volatili utilizzando una SPINTA o modificare il registro di RSP utilizzo di allocazione dello stack imposta aggiuntive non è supportato.
Un elemento UNWIND_INFO che dispone di un set UNW_FLAG_CHAININFO può contenere una voce RUNTIME_FUNCTION il cui elemento UNW_FLAG_CHAININFO dispone anche di un set UNWIND_INFO (shrink-wrapping multiplo).I puntatori UNWIND_INFO concatenati arriveranno infine a un elemento UNWIND_INFO in cui il flag UNW_FLAG_CHAININFO non è impostato. Si tratta dell'elemento UNWIND_INFO principale che punta al punto di ingresso effettivo della routine.
Vedere anche
Riferimenti
Dati di rimozione per la gestione delle eccezioni, supporto del debugger