winedbg: In 'info locals' command, show the full register/stack layout for parameters & locals.
This commit is contained in:
parent
83462bf081
commit
244099689c
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue