[PATCH] [WineDbg]: in 'info locals' command, show the full register/stack layout for parameters & locals
Eric Pouech
eric.pouech at orange.fr
Sun Jun 24 06:03:09 CDT 2012
A+
---
programs/winedbg/symbol.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/programs/winedbg/symbol.c b/programs/winedbg/symbol.c
index 8d7af5d..99b382d 100644
--- a/programs/winedbg/symbol.c
+++ b/programs/winedbg/symbol.c
@@ -81,11 +81,20 @@ static BOOL fill_sym_lvalue(const SYMBOL_INFO* sym, ULONG_PTR base,
else if (sym->Flags & SYMFLAG_REGREL)
{
DWORD_PTR* pval;
+ size_t l;
+ *buffer++ = '['; sz--;
if (!memory_get_register(sym->Register, &pval, buffer, sz))
return FALSE;
+ l = strlen(buffer);
+ sz -= l;
+ buffer += l;
lvalue->cookie = DLV_TARGET;
lvalue->addr.Offset = (ULONG64)*pval + sym->Address;
+ if ((LONG_PTR)sym->Address >= 0)
+ snprintf(buffer, sz, "+%ld]", (ULONG_PTR)sym->Address);
+ else
+ snprintf(buffer, sz, "-%ld]", -(LONG_PTR)sym->Address);
}
else if (sym->Flags & SYMFLAG_VALUEPRESENT)
{
@@ -711,7 +720,7 @@ void symbol_print_local(const SYMBOL_INFO* sym, DWORD_PTR base, BOOL detailed)
{
print_value(&lvalue, 0, 1);
if (detailed)
- dbg_printf(" (%s%s)",
+ dbg_printf(" (%s %s)",
(sym->Flags & SYMFLAG_PARAMETER) ? "parameter" : "local",
buffer);
}
More information about the wine-patches
mailing list