diff --git a/x64_dbg_dbg/debugger.cpp b/x64_dbg_dbg/debugger.cpp index 908898b6..21f0d2a3 100644 --- a/x64_dbg_dbg/debugger.cpp +++ b/x64_dbg_dbg/debugger.cpp @@ -667,7 +667,9 @@ static void cbCreateProcess(CREATE_PROCESS_DEBUG_INFO* CreateProcessInfo) dbload(); SymSetOptions(SYMOPT_DEBUG|SYMOPT_LOAD_LINES|SYMOPT_ALLOW_ABSOLUTE_SYMBOLS|SYMOPT_FAVOR_COMPRESSED|SYMOPT_IGNORE_NT_SYMPATH); GuiSymbolLogClear(); - SymInitialize(fdProcessInfo->hProcess, szSymbolCachePath, false); //initialize symbols + char szServerSearchPath[MAX_PATH * 2] = ""; + sprintf_s(szServerSearchPath, "SRV*%s", szSymbolCachePath); + SymInitialize(fdProcessInfo->hProcess, szServerSearchPath, false); //initialize symbols SymRegisterCallback64(fdProcessInfo->hProcess, SymRegisterCallbackProc64, 0); SymLoadModuleEx(fdProcessInfo->hProcess, CreateProcessInfo->hFile, DebugFileName, 0, (DWORD64)base, 0, 0, 0); IMAGEHLP_MODULE64 modInfo; diff --git a/x64_dbg_dbg/symbolinfo.cpp b/x64_dbg_dbg/symbolinfo.cpp index 52f8cdbb..def77e81 100644 --- a/x64_dbg_dbg/symbolinfo.cpp +++ b/x64_dbg_dbg/symbolinfo.cpp @@ -99,6 +99,7 @@ void symdownloadallsymbols(const char* szSymbolStore) } for(int i=0; ihProcess, (HMODULE)modbase, szModulePath, MAX_PATH)) diff --git a/x64_dbg_dbg/value.cpp b/x64_dbg_dbg/value.cpp index bd250768..06140b77 100644 --- a/x64_dbg_dbg/value.cpp +++ b/x64_dbg_dbg/value.cpp @@ -1078,8 +1078,8 @@ bool valapifromstring(const char* name, uint* value, int* value_size, bool print addrfound[found]=(uint)hMods[i]+rva; found++; } + FreeLibrary(hModule); } - break; } } } @@ -1088,7 +1088,8 @@ bool valapifromstring(const char* name, uint* value, int* value_size, bool print } if(!found) { - efree(addrfound, "valapifromstring:addrfound"); + if(addrfound) + efree(addrfound, "valapifromstring:addrfound"); return false; } if(value_size)