共用方式為


尋找符號

將符號檔載入符號處理程式之後,應用程式可以使用符號定位器函式傳回指定位址的符號資訊。 這些函式也可以尋找位址的原始程式碼檔名和行號位置。

列舉符號檔

若要擷取模組名稱載入的所有符號檔清單,請呼叫 SymEnumerateModules64 函式。 如需範例,請參閱 列舉符號模組。 若要擷取指定模組的符號清單,請呼叫 SymEnumSymbols 函式。 如需範例,請參閱 列舉符號

依位址擷取符號

若要擷取特定位址的符號資訊,請使用 SymFromAddr 函式。 此函式會擷取資訊,並將其儲存在 SYMBOL_INFO 結構中。 因為符號名稱長度是可變的,因此您必須在結構宣告SYMBOL_INFO之後提供額外的緩衝區空間。 如需範例,請參閱 依位址擷取符號資訊。

請注意,位址不需要位於符號界限上。 如果位址是在符號開頭之後,但在符號結尾之前(符號開頭加上符號大小),函式會找出符號。

依符號名稱擷取符號

若要擷取特定模組和符號名稱之SYMBOL_INFO結構中的符號資訊,請使用 SymFromName 函式。 如果已設定延後符號載入, SymFromName 會在尚未載入模組時嘗試載入模組的符號檔。 若要指定模組名稱以及符號名稱,請使用語法 ModuleSymName。 “!” 字元會從符號名稱分隔模組名稱。 如需範例,請參閱 依名稱擷取符號資訊。

依位址擷取行號

若要擷取特定位址的原始程式碼位置,請使用 SymGetLineFromAddr64 函式。 此函式會 填入IMAGEHLP_LINE64 結構,其中包含指定地址所參考的來源檔名和行號位置。 如需範例,請參閱 依位址擷取符號資訊。

依符號名稱擷取行號

若要擷取特定符號名稱的原始程式碼位置,請使用 SymGetLineFromName64 函式。 此函式類似於 SymGetSymFromName64,但會擷取IMAGEHLP_LINE64結構。 若要使用 SymGetLineFromAddr64SymGetLineFromName64,您必須使用 SymSetOptions 函式來設定載入行選項 (SYMOPT_LOAD_LINES]。 如需範例,請參閱 依名稱擷取符號資訊。