共用方式為


對象參考追蹤

物件參考追蹤功能會在每次遞增或遞減物件參考計數器時記錄順序性堆疊追蹤。 追蹤可協助您偵測對象參考錯誤,包括雙重取值、參考失敗,以及無法取值物件。 只有 Windows Vista 和更新版本的 Windows 才支援此功能。

如需在 「全域旗標 」對話方塊中設定物件參照追蹤功能的相關資訊,請參閱 設定物件參照追蹤。 如需在命令提示字元設定物件參考追蹤功能的相關資訊,請參閱 GFlags 命令。 如需範例,請參閱 範例 15:使用物件參照追蹤

當您懷疑某個物件未被正確引用或取消引用時,物件參考追蹤最有用,通常是因為集區使用量增加,表示有物件正在洩漏,即使其控制碼計數為零,進程或會話仍無法結束。 與記錄在日誌中以供以後檢閱的追蹤不同,物件參考追蹤設計為在處理程序執行中以及參考和取消參考物件時即時使用。 您可以使用 !obtrace 偵錯工具延伸模組,在偵錯工具中檢視物件參考追蹤。 因為此延伸模組需要指定的物件位址,所以您必須事先知道哪個物件可能是錯誤的來源。

下列規則適用於物件參考追蹤:

  • 您一次只能執行一個物件參考追蹤。

  • 因為核心範圍的追蹤不切實際,所以您必須將追蹤限制為使用指定集區標籤建立的物件,或由指定處理程序所建立的物件 (以映像檔名表示) ,或兩者兼而有之。

  • 您只能為每個追蹤指定一個圖像檔。 如果您指定映像檔,則追蹤僅限於映像所代表的處理程序所建立的物件。 不會追蹤程序所參照但由不同程序建立的物件。

  • 您最多可以為每個追蹤指定 16 個集區標籤。 會追蹤具有任何指定集區標籤的物件。

  • 如果您同時指定映像檔和一或多個集區標籤,則追蹤僅限於處理程序所建立且具有任何指定集區標籤的物件。

  • 物件參照追蹤無法追蹤追蹤啟動時已在執行的處理程序。 追蹤僅包含在追蹤開始後啟動的程序物件。

  • 標示為追蹤的物件會被追蹤,直到物件被銷毀或停用追蹤為止。 根據預設,物件的追蹤只會在物件終結之前保留,但您可以指定「永久」追蹤 (/p),其中會保留追蹤,直到停用追蹤為止。

  • 您可以將物件參考追蹤設定儲存為登錄設定或核心旗標 (執行時間) 設定。 如果您同時具有登錄和核心旗標設定,則執行階段設定會優先,但在您關閉或重新啟動電腦時會遺失。