Перечисление модулей символов
В следующем коде перечислены модули, загруженные функцией SymLoadModule64 или SymInitialize. Для функции SymEnumerateModules64 требуется функция обратного вызова, которая будет вызываться один раз для каждого модуля, загруженного. В этом примере EnumModules представляет собой реализацию функции обратного вызова. В примере предполагается, что обработчик символов инициализирован с помощью кода при инициализации обработчика символов.
BOOL CALLBACK EnumModules(
PCTSTR ModuleName,
DWORD64 BaseOfDll,
PVOID UserContext )
{
UNREFERENCED_PARAMETER(UserContext);
_tprintf(TEXT("%08X %s\n"), BaseOfDll, ModuleName);
return TRUE;
}
if (SymEnumerateModules64(hProcess, EnumModules, NULL))
{
// SymEnumerateModules64 returned success
}
else
{
// SymEnumerateModules64 failed
error = GetLastError();
_tprintf(TEXT("SymEnumerateModules64 returned error : %d\n"), error);
}