Eric Pouech : winedbg: In 'info locals' command, show the full register/ stack layout for parameters & locals.

Alexandre Julliard julliard at winehq.org
Mon Jun 25 13:24:10 CDT 2012


Module: wine
Branch: master
Commit: 244099689cbda165b0eaded0c7aeed05e26feec6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=244099689cbda165b0eaded0c7aeed05e26feec6

Author: Eric Pouech <eric.pouech at orange.fr>
Date:   Sun Jun 24 13:03:09 2012 +0200

winedbg: In 'info locals' command, show the full register/stack layout for parameters & locals.

---

 programs/winedbg/symbol.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

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-cvs mailing list