[PATCH 10/10] dbghelp: handling of complex location in dwarf
Eric Pouech
eric.pouech at gmail.com
Thu Jul 15 02:40:39 CDT 2021
Don't recompute the location when we need to store a location block for
later recomputation.
It had also the bad side effect of letting the location to be absolute,
which wasn't expected at all.
Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
---
dlls/dbghelp/dwarf.c | 1 -
dlls/dbghelp/tests/dbghelp.c | 2 --
2 files changed, 3 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 53274c4f597..a4f426ca6a0 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -930,7 +930,6 @@ static BOOL dwarf2_compute_location_attr(dwarf2_parse_context_t* ctx,
*ptr = xloc.u.block.size;
memcpy(ptr + 1, xloc.u.block.ptr, xloc.u.block.size);
loc->offset = (ULONG_PTR)ptr;
- compute_location(ctx->module, &lctx, loc, NULL, frame);
}
}
return TRUE;
diff --git a/dlls/dbghelp/tests/dbghelp.c b/dlls/dbghelp/tests/dbghelp.c
index 13b19ef8b9d..4f2ecfb0281 100644
--- a/dlls/dbghelp/tests/dbghelp.c
+++ b/dlls/dbghelp/tests/dbghelp.c
@@ -354,7 +354,6 @@ static void test_symbols(const struct debuggee* dbg)
BOOL labelfound = FALSE;
/* 4 made of: 2 parameters, one local, one label */
- todo_wine_if(sizeof(void*)==4)
ok(tfp->Count >= 4, "Wrong number of parameters+local variables' type %u\n", tfp->Count);
/* there are other children than parameters / local variables, so need to lookup */
@@ -407,7 +406,6 @@ static void test_symbols(const struct debuggee* dbg)
break;
}
}
- if (!found) todo_wine
ok(found, "Couldn't find local variable/parameter %ls\n", locpmts[j].name);
}
ok(labelfound, "Couldn't find the label scaramouche\n");
More information about the wine-devel
mailing list