Commit ab8fdb19 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

dbghelp/dwarf: In DW_AT_ranges, the values are relative to the start of the CU.

And not the module, as most of the other addresses. Signed-off-by: 's avatarEric Pouech <eric.pouech@gmail.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent a767c6d6
...@@ -1222,6 +1222,9 @@ static BOOL dwarf2_read_range(dwarf2_parse_context_t* ctx, const dwarf2_debug_in ...@@ -1222,6 +1222,9 @@ static BOOL dwarf2_read_range(dwarf2_parse_context_t* ctx, const dwarf2_debug_in
high = dwarf2_parse_addr_head(&traverse, &ctx->head); high = dwarf2_parse_addr_head(&traverse, &ctx->head);
if (low == 0 && high == 0) break; if (low == 0 && high == 0) break;
if (low == ULONG_MAX) FIXME("unsupported yet (base address selection)\n"); if (low == ULONG_MAX) FIXME("unsupported yet (base address selection)\n");
/* range values are relative to start of compilation unit */
low += ctx->compiland->address - ctx->module_ctx->load_offset;
high += ctx->compiland->address - ctx->module_ctx->load_offset;
if (low < *plow) *plow = low; if (low < *plow) *plow = low;
if (high > *phigh) *phigh = high; if (high > *phigh) *phigh = high;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment