From 5b61db4161adbf3f13d981b52c2612bf68c79cdc Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Fri, 24 Nov 2006 22:18:35 +0100 Subject: [PATCH] dbghelp: Correctly store the addresses of blocks. They are stored internally as offsets to the start of the function which embeds the block. --- dlls/dbghelp/dwarf.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index bf77335ccb3..bcd07c3f2f0 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -1354,7 +1354,8 @@ static void dwarf2_parse_inlined_subroutine(dwarf2_subprogram_t* subpgm, if (!dwarf2_find_attribute(subpgm->ctx, di, DW_AT_high_pc, &high_pc)) high_pc.u.uvalue = 0; block = symt_open_func_block(subpgm->ctx->module, subpgm->func, parent_block, - low_pc.u.uvalue, high_pc.u.uvalue - low_pc.u.uvalue); + subpgm->ctx->module->module.BaseOfImage + low_pc.u.uvalue - subpgm->func->address, + high_pc.u.uvalue - low_pc.u.uvalue); if (di->abbrev->have_child) /** any interest to not have child ? */ { @@ -1406,7 +1407,8 @@ static void dwarf2_parse_subprogram_block(dwarf2_subprogram_t* subpgm, high_pc.u.uvalue = 0; block = symt_open_func_block(subpgm->ctx->module, subpgm->func, parent_block, - low_pc.u.uvalue, high_pc.u.uvalue - low_pc.u.uvalue); + subpgm->ctx->module->module.BaseOfImage + low_pc.u.uvalue - subpgm->func->address, + high_pc.u.uvalue - low_pc.u.uvalue); if (di->abbrev->have_child) /** any interest to not have child ? */ { -- 2.11.4.GIT