共用方式為


鏈結的回溯資訊結構

更新:2007 年 11 月

如果已設定 UNW_FLAG_CHAININFO 旗標,則回溯資訊結構即為次要結構,並且包含共用例外處理常式/鏈結資訊位址欄位中的相對影像指標,此指標會指向 RUNTIME_FUNCTION 項目,而該項目又指向主要的回溯資訊。

鏈結資訊在下列兩種情況中非常有用。首先,它可以用在非連續的程式碼區段。由於不需要從主要回溯資訊複製回溯程式碼陣列,因此,使用鏈結資訊可以減少必要回溯資訊的大小。

鏈結資訊還可以用來處理變動 (Volatile) 暫存器儲存的壓縮包裝 (Shrink-Wrapping)。編譯器可以選擇延遲儲存某些變動暫存器,直到函式項目初構 (Prolog) 超出範圍為止。若要記錄這些動作,可以讓函式部分的主要回溯資訊出現在壓縮包裝程式碼之前,再將鏈結資訊設定為非零的初構大小,其中鏈結資訊的回溯程式碼反映了靜態 (Nonvolatile) 暫存器的儲存動作。在該情況中,回溯程式碼將會全部是 UWOP_SAVE_NONVOL 的執行個體。此處不支援使用 PUSH 儲存靜態暫存器的壓縮包裝,而且使用額外的固定堆疊配置修改 RSP 的壓縮包裝同樣不受支援。

您可以將具有 UNW_FLAG_CHAININFO 的 UNWIND_INFO 項目設為指向 RUNTIME_FUNCTION 項目,該項目的 UNWIND_INFO 項目也是設定為具有 UNW_FLAG_CHAININFO (多重壓縮包裝)。最後,跟隨鏈結的回溯資訊指標會到達 UNWIND_INFO 項目 (UNW_FLAG_CHAININFO 已清除),它就是指向實際程序進入點 (Entry Point) 的 UNWIND_INFO 項目。

請參閱

參考

回溯資料以進行例外處理與偵錯工具支援