Partager via


Structures d'informations de déroulement chaînées

Mise à jour : novembre 2007

Si l'indicateur UNW_FLAG_CHAININFO est défini, une structure d'informations de déroulement est un indicateur secondaire et contient un pointeur relatif à l'image dans le champ d'adresse d'informations chaînées/du gestionnaire d'exceptions partagées qui désigne l'entrée RUNTIME_FUNCTION pointant vers les informations de déroulement principales.

Les informations chaînées sont utiles dans deux situations. En premier lieu, elles peuvent être utilisées pour les segments de code non contigus. L'utilisation d'informations chaînées permet de réduire la taille des informations de déroulement requises, car il n'est pas nécessaire de dupliquer le tableau des codes de déroulement à partir des informations de déroulement principales.

Les informations chaînées peuvent également être utilisées pour gérer l'emballage des sauvegardes de registres volatils. Le compilateur peut choisir de différer l'enregistrement des registres volatils jusqu'à la sortie du prologue de l'entrée de fonction. Ils peuvent être enregistrés en insérant les informations de déroulement principales pour la partie de la fonction avant le code d'emballage, puis en configurant les informations chaînées avec une taille de prologue non nulle, où les codes de déroulement contenus dans les informations chaînées reflètent les enregistrements des registres non volatils. Dans ce cas, les codes de déroulement seront tous des instances de UWOP_SAVE_NONVOL. L'emballage enregistrant des registres non volatils à l'aide de PUSH n'est pas pris en charge, et l'emballage modifiant RSP avec une allocation de pile fixe supplémentaire n'est pas pris en charge non plus.

Un élément UNWIND_INFO dont UNW_FLAG_CHAININFO est défini de pointer vers une entrée RUNTIME_FUNCTION dont l'élément UNWIND_INFO possède également un UNW_FLAG_CHAININFO défini (plusieurs emballages). Enfin, si vous suivez les pointeurs d'informations de déroulement chaînées, vous arrivez à un élément UNWIND_INFO avec UNW_FLAG_CHAININFO effacé, qui est l'élément UNWIND_INFO principal pointant vers le point d'entrée de procédure réel.

Voir aussi

Référence

Données de déroulement pour la gestion des exceptions et la prise en charge du débogueur