SymLoadModuleEx возвращает ERROR_INVALID_ADDRESS
Я использую SymLoadModuleEx
от Dbghelp.h
поставляется с VS2015. Функция работает только один раз и возвращает 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 все должно работать просто отлично.