Module: wine Branch: master Commit: c80f5181ff5e1bf7ad99dbea165b07610d3f1f8a URL: http://source.winehq.org/git/wine.git/?a=commit;h=c80f5181ff5e1bf7ad99dbea16...
Author: David Anderson davea42@earthlink.net Date: Tue Oct 24 21:05:21 2006 -0700
dbghelp: Avoid printing too many "What the heck" messages from winedbg.
---
dlls/dbghelp/dwarf.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index b1c8572..2f22d9e 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -1095,7 +1095,7 @@ static unsigned dwarf2_map_register(int
switch (regno) { - case Wine_DW_no_register: FIXME("What the heck\n"); reg = 0; break; + case Wine_DW_no_register: FIXME("What the heck map reg 0x%x\n",regno); reg = 0; break; /* FIXME: this is a dirty hack */ case Wine_DW_frame_register: reg = 0; break; case 0: reg = CV_REG_EAX; break; @@ -1394,8 +1394,16 @@ static struct symt* dwarf2_parse_subprog
subpgm.ctx = ctx; subpgm.compiland = compiland; - if (dwarf2_compute_location(ctx, di, DW_AT_frame_base, &subpgm.frame_offset, &subpgm.frame_reg)) + if (dwarf2_compute_location(ctx, di, DW_AT_frame_base, &subpgm.frame_offset, &subpgm.frame_reg)) { TRACE("For %s got %ld/%d\n", name.u.string, subpgm.frame_offset, subpgm.frame_reg); + if (subpgm.frame_reg == Wine_DW_no_register) { + /* Likely a constant, meaning a location list offset. + We do not handle those yet. */ + /*FIXME("need to handle location lists\n"); */ + subpgm.frame_reg = 0; + subpgm.frame_offset = 0; + } + } else /* on stack !! */ { subpgm.frame_reg = 0;