如果設定了 UNW_FLAG_CHAININFO 旗標,則回溯資訊結構會是次要資訊,而共用的例外狀況-處理常式/鏈結-資訊地址欄位會包含主要回溯資訊。 下列程式碼會擷取主要回溯資訊,並假設 unwindInfo 是設定了 UNW_FLAG_CHAININFO 旗標的結構。
PRUNTIME_FUNCTION primaryUwindInfo = (PRUNTIME_FUNCTION)&(unwindInfo->UnwindCode[( unwindInfo->CountOfCodes + 1 ) & ~1]);
鏈結資訊在下列兩種情況中非常有用。 首先,它可以用在非連續的程式碼區段。 透過利用鏈結的資訊,您可以減少必要回溯資訊的大小,因為不需從主要回溯資訊複製回溯程式碼陣列。
您也可以使用鏈結的資訊來群組暫存器儲存的 volatile。 編譯器可以延遲儲存某些變動暫存器,直到函式項目初構超出範圍為止。 若要記錄此動作,可以讓函式部分的主要回溯資訊出現在群組程式碼之前,再將鏈結資訊設定為非零的初構大小,其中鏈結資訊的回溯程式碼反映了靜態暫存器的儲存動作。 在該情況中,回溯程式碼將會全部是 UWOP_SAVE_NONVOL 的執行個體。 不支援使用 PUSH 或利用其他固定堆疊配置修改 MSBuild.rsp 檔案來儲存靜態暫存器的群組。
設定 UNW_FLAG_CHAININFO 的 UNWIND_INFO 項目可以包含 RUNTIME_FUNCTION 項目,其 UNWIND_INFO 項目也設定了 UNW_FLAG_CHAININFO 設定 (多個壓縮包裝)。 最後,鏈結的回溯資訊指標會到達 UNWIND_INFO 項目 (UNW_FLAG_CHAININFO 已清除),它就是指向實際程序進入點 (Entry Point) 的主要 UNWIND_INFO 項目。