Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Následující kód předvádí, jak inicializovat zpracování symbolů. Funkce SymSetOptions odkládá načítání symbolů, dokud nejsou požadovány informace o symbolech. Kód načte symboly pro každý modul v zadaném procesu předáním hodnoty TRUE pro parametr bInvade funkce SymInitialize. (Tato funkce volá funkci SymLoadModule64 pro každý modul, který proces má namapován ve svém adresním prostoru.)
Pokud zadaný proces není proces, který se nazývá SymInitialize, kód předá identifikátor procesu jako první parametr SymInitialize.
Určení NULL jako druhého parametru SymInitialize naznačuje, že zpracovatel symbolů by měl k vyhledání souborů symbolů použít výchozí vyhledávací cestu. Podrobné informace o tom, jak obslužná rutina symbolů vyhledá soubory symbolů nebo jak může aplikace určit cestu hledání symbolů, najdete v tématu Cesty symbolů.
DWORD error;
HANDLE hCurrentProcess;
HANDLE hProcess;
SymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS);
hCurrentProcess = GetCurrentProcess();
if (!DuplicateHandle(hCurrentProcess, hCurrentProcess, hCurrentProcess, &hProcess, 0, FALSE, DUPLICATE_SAME_ACCESS))
{
// DuplicateHandle failed
error = GetLastError();
printf("DuplicateHandle returned error : %d\n", error);
return FALSE;
}
if (!SymInitialize(hProcess, NULL, TRUE))
{
// SymInitialize failed
error = GetLastError();
printf("SymInitialize returned error : %d\n", error);
return FALSE;
}