diff --git a/dlls/dbghelp/dbghelp_private.h b/dlls/dbghelp/dbghelp_private.h index a341b03eb87..de764ae97d9 100644 --- a/dlls/dbghelp/dbghelp_private.h +++ b/dlls/dbghelp/dbghelp_private.h @@ -353,6 +353,7 @@ struct module struct module* next; enum module_type type : 16; unsigned short is_virtual : 1; + DWORD64 reloc_delta; /* specific information for debug types */ struct module_format* format_info[DFI_LAST]; diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c index e0fab9c958c..132e40c8aef 100644 --- a/dlls/dbghelp/elf_module.c +++ b/dlls/dbghelp/elf_module.c @@ -1080,6 +1080,7 @@ static BOOL elf_load_file(struct process* pcs, const WCHAR* filename, HeapFree(GetProcessHeap(), 0, modfmt); goto leave; } + elf_info->module->reloc_delta = elf_info->module->module.BaseOfImage - fmap.u.elf.elf_start; elf_module_info = (void*)(modfmt + 1); elf_info->module->format_info[DFI_ELF] = modfmt; modfmt->module = elf_info->module; diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c index 8f12fefdd15..e99bd7fb8a5 100644 --- a/dlls/dbghelp/module.c +++ b/dlls/dbghelp/module.c @@ -167,6 +167,7 @@ struct module* module_new(struct process* pcs, const WCHAR* name, module->module.SourceIndexed = FALSE; module->module.Publics = FALSE; + module->reloc_delta = 0; module->type = type; module->is_virtual = virtual ? TRUE : FALSE; for (i = 0; i < DFI_LAST; i++) module->format_info[i] = NULL;