如需符號的概觀,包括使用符號檔和符號伺服器,請參閱 符號。
符號名稱和位置
若要尋找指定其名稱之符號的位置,請使用 GetOffsetByName。 如需用來指定符號名稱的語法詳細數據,請參閱 符號語法和符號比對。
如果不知道符號的確切名稱,或多個符號具有相同的名稱, StartSymbolMatch 會開始搜尋名稱符合指定模式的符號。 如需語法的詳細資訊,請參閱 字串通配符語法。
若要尋找指定其位置之符號的名稱,請使用 GetNameByOffset。 若要在靠近指定位置的模組中尋找符號名稱,請使用 GetNearNamebyOffset。
注意 盡可能使用模組名稱限定符號,例如 mymodule!main。 否則,如果符號不存在(例如,因為打字錯誤),引擎必須載入並搜尋每個模組的符號,這可能是緩慢的過程,特別是在核心模式偵錯時。 如果符號名稱是以模組名稱限定,引擎只需要搜尋該模組的符號。
符號是使用結構DEBUG_MODULE_AND_ID的唯一識別。 這個結構是由 GetSymbolEntriesByName 和 GetSymbolEntriesByOffset 方法傳回的,這些方法會分別根據其名稱和位置來搜尋符號。
GetSymbolEntryInformation 方法會使用 DEBUG_SYMBOL_ENTRY 結構傳回符號的描述。
若要尋找結構中欄位移,請使用 GetFieldOffset。 若要在結構中尋找其索引指定的欄位名稱,請使用 GetFieldName。 若要尋找指定其值之列舉常數的名稱,請使用 GetConstantName。
GetSymbolInformation 方法可以針對符號的相關信息執行數個要求。
符號選項
許多選項可控制符號的載入和卸除方式。 如需這些選項的描述,請參閱 設定符號選項。
您可以使用 AddSymbolOptions 開啟符號選項,並使用 RemoveSymbolOptions 關閉。
GetSymbolOptions 會傳回目前的符號選項。 若要一次設定所有符號選項,請使用 SetSymbolOptions。
重載符號
載入符號檔之後,引擎會將符號資訊儲存在內部快取中。 若要排清此快取,請使用 Reload。 這些符號現在或稍後必須再次載入。
綜合符號
綜合符號 是標記任意位址以方便參考的方法。 綜合符號可以在任何現有的模組中建立。 AddSyntheticSymbol 方法會建立新的綜合符號。 您可以使用 RemoveSyntheticSymbol 移除綜合符號。 重載模組的符號會刪除與該模組相關聯的所有綜合符號。
符號路徑
若要將目錄或符號伺服器新增至符號路徑,請使用 AppendSymbolPath方法。 GetSymbolPath 會傳回整個符號路徑,而且可以使用 SetSymbolPath 來變更。