Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az alábbi kód bemutatja, hogyan inicializálhatja a szimbólumkezelőt. A SymSetOptions függvény a szimbólumok betöltését a szimbólumadatok kéréséig hárítja el. A kód betölti a megadott folyamat egyes moduljainak szimbólumait azzal, hogy a bInvade paraméterhez a TRUE értéket adja át a SymInitialize függvény esetében. (Ez a függvény meghívja a SymLoadModule64 függvényt minden olyan modulhoz, amelyet a folyamat leképezett a címtérbe.)
Ha a megadott folyamat nem az SymInitializenevű folyamat, a kód egy folyamatazonosítót ad át a SymInitializeelső paramétereként.
A SymInitialize második paramétereként NULL megadása azt jelzi, hogy a szimbólumkezelőnek az alapértelmezett keresési útvonal használatával kell megkeresnie a szimbólumfájlokat. A szimbólumkezelő által történő szimbólumfájlok megkeresésének részletei vagy annak leírása, hogyan adhat meg egy alkalmazás szimbólumkeresési útvonalat, olvassa el a Szimbólum elérési útjaicímű témakört.
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;
}