如果針對尚未載入的常式名稱設定岔斷點,則岔斷點稱為延遲、虛擬或未解析的岔斷點。 (這些術語可以互換使用。未解析的岔斷點與模組的任何特定載入無關。 每次載入新應用程式時,都會檢查此常式名稱。 如果出現此常式,偵錯工具會計算虛擬中斷點的實際編碼位址,並啟用中斷點。
如果您使用 bu 指令來設定岔斷點,則會自動將岔斷點視為未解析。 如果此岔斷點位於已載入的模組中,則岔斷點仍會啟用並正常運作。 不過,如果稍後卸載並重新載入模組,則此岔斷點不會消失。 另一方面,您使用 bp 設定的岔斷點會立即解析為位址。
bp 岔斷點和 bu 岔斷點之間有三個主要差異:
bp 斷點位置一律會轉換成位址。 如果模組變更移動了設定 bp 岔斷點的程式碼,則岔斷點會保留在相同的位址。 另一方面, bu 岔斷點會與所使用的符號值 (通常是符號加上位移) 相關聯,而且即使其位址變更,它也會追蹤此符號位置。
如果在已載入的模組中找到 bp 岔斷點位址,且稍後卸載該模組,則會從岔斷點清單中移除岔斷點。 另一方面, bu 斷點在重複卸載和載入後仍然存在。
您使用 bp 設定的中斷點不會儲存在 WinDbg 工作區中。 使用 bu 設定的岔斷點會儲存在工作區中。
控制地址斷點和未解析斷點
可以使用 bp (設定中斷點) 命令或 bm (設定符號中斷點) 命令 (包含 /d 開關) 來建立位址中斷點。 可以使用 bu (設定未解決的中斷點) 指令來建立未解析的岔斷點,或在不包含 /d 參數時使用 bm 指令來建立。 停用、啟用及修改岔斷點的命令會套用至所有種類的岔斷點。 顯示岔斷點清單的指令包括所有岔斷點,並指出每一個岔斷點的類型。 如需這些命令的清單,請參閱 控制岔斷點的方法。
[WinDbg 中斷點] 對話方塊會顯示所有中斷點,指出未解析的中斷點,並以 「u」 表示。 此對話框可用來修改任何中斷點。 此對話方塊上的 [命令] 文字方塊可用來建立任何類型的中斷點;如果省略類型,則會建立未解析的岔斷點。 如需詳細資訊,請參閱 編輯 |中斷點。 當您在 WinDbg 反組譯視窗 或 來源視窗中使用滑鼠設定中斷點時,偵錯工具會建立未解析的中斷點。