SymLoadModuleEx返回ERROR_INVALID_ADDRESS

时间:2017-07-13 08:06:36

标签: c++ dll dbghelp

我正在使用VS2015附带的SymLoadModuleEx Dbghelp.h。该函数只能运行一次,并为下一次调用返回ERROR_INVALID_ADDRESS。当我更改调用顺序以便调用另一个DLL(完全不同,甚至位于其他地方)时,它会工作一次,并为其他人返回ERROR_INVALID_ADDRESS

这意味着它不是加载DLL的问题,因为它无论第一个DLL都不起作用。

初始化如下:

SymSetOptions(SYMOPT_UNDNAME | SYMOPT_LOAD_LINES);
SymInitialize(CurrentProcessHandle = GetCurrentProcess(), nullptr, true);

被称为:

SymLoadModuleEx(CurrentProcessHandle, nullptr, DllName.c_str(), nullptr, dwBaseAddr, 0, nullptr, 0);

DllName是正确的,dwBaseAddr是0。

根据MSDN SymLoadModuleEx function,一切都应该正常。

0 个答案:

没有答案