David Anderson : dbghelp: Avoid printing too many "What the heck" messages from winedbg.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Oct 26 06:32:10 CDT 2006


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

Author: David Anderson <davea42 at 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;




More information about the wine-cvs mailing list