枚举符号模块

以下代码列出了 SymLoadModule64SymInitialize 函数加载的模块。 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);
}