Sdílet prostřednictvím


Hledání symbolů

Po načtení souboru symbolu do obslužné rutiny symbolů může aplikace použít funkce lokátoru symbolů k vrácení informací o symbolech pro zadanou adresu. Tyto funkce také můžou najít název souboru zdrojového kódu a umístění čísla řádku pro adresu.

Výčet souborů symbolů

K načtení seznamu všech souborů symbolů načtených názvem modulu zavolejte funkci SymEnumerateModules64. Příklad naleznete v „Enumerating Symbol Modules“. Pokud chcete načíst seznam symbolů pro daný modul, zavolejte funkci SymEnumSymbols. Příklad najdete v seznamu symbolů.

Načítání symbolů podle adresy

K načtení symbolických informací pro konkrétní adresu použijte funkci SymFromAddr. Tato funkce načte informace a uloží je do struktury SYMBOL_INFO. Vzhledem k tomu, že názvy symbolů mají proměnlivou délku, je nutné zadat další místo vyrovnávací paměti po deklaraci struktury SYMBOL_INFO. Příklad najdete v tématu Načítání informací o symbolech podle adresy.

Všimněte si, že adresa nemusí být na hranici symbolu. Pokud adresa následuje za začátkem symbolu, ale před koncem symbolu (začátek symbolu plus velikost symbolu), funkce vyhledá symbol.

Načítání symbolů podle názvu symbolu

Pokud chcete načíst symbolické informace ve struktuře SYMBOL_INFO pro konkrétní název modulu a symbolu, použijte funkci SymFromName. Pokud je načítání odložených symbolů nastaveno, SymFromName se pokusí načíst soubor symbolů toho modulu, pokud už nebyl načten. Pokud chcete zadat název modulu spolu s názvem symbolu, použijte syntaxi Modul!SymName. Znak "!" odděluje název modulu od názvu symbolu. Příklad najdete v tématu Načítání informací o symbolech podle názvu.

Načítání čísel řádků podle adresy

Pokud chcete načíst umístění zdrojového kódu pro konkrétní adresu, použijte funkci SymGetLineFromAddr64. Tato funkce vyplní IMAGEHLP_LINE64 strukturu, která obsahuje název zdrojového souboru a umístění čísla řádku, na které odkazuje zadaná adresa. Příklad najdete v tématu Načítání informací o symbolech podle adresy.

Načítání čísel řádků podle názvu symbolu

Pokud chcete načíst umístění zdrojového kódu pro konkrétní název symbolu, použijte funkci SymGetLineFromName64. Tato funkce je podobná SymGetSymFromName64, ale načte IMAGEHLP_LINE64 strukturu. Chcete-li použít SymGetLineFromAddr64 nebo SymGetLineFromName64, je nutné nastavit možnost načíst řádky (SYMOPT_LOAD_LINES) pomocí funkce SymSetOptions. Příklad najdete v tématu Načítání informací o symbolech podle názvu.