dbghelp: In dwarf debug functions, use register name instead of register value.
authorEric Pouech <eric.pouech@orange.fr>
Sun, 13 Mar 2011 20:31:17 +0000 (21:31 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 14 Mar 2011 12:20:24 +0000 (13:20 +0100)
dlls/dbghelp/dwarf.c

index 5d6fd25b17c3fe5c6bf1aa0aa44fa778449e1f0f..1d5aa176b27e14e54d7eb6f10ee50cbacb14bb4b 100644 (file)
@@ -677,10 +677,12 @@ compute_location(dwarf2_traverse_context_t* ctx, struct location* loc,
              */
             if (!piece_found)
             {
+                DWORD   cvreg = dwarf2_map_register(op - DW_OP_reg0);
                 if (loc->reg != Wine_DW_no_register)
-                    FIXME("Only supporting one reg (%d -> %d)\n",
-                          loc->reg, dwarf2_map_register(op - DW_OP_reg0));
-                loc->reg = dwarf2_map_register(op - DW_OP_reg0);
+                    FIXME("Only supporting one reg (%s/%d -> %s/%d)\n",
+                          dbghelp_current_cpu->fetch_regname(loc->reg), loc->reg,
+                          dbghelp_current_cpu->fetch_regname(cvreg), cvreg);
+                loc->reg = cvreg;
             }
             loc->kind = loc_register;
         }
@@ -692,10 +694,12 @@ compute_location(dwarf2_traverse_context_t* ctx, struct location* loc,
              */
             if (!piece_found)
             {
+                DWORD   cvreg = dwarf2_map_register(op - DW_OP_breg0);
                 if (loc->reg != Wine_DW_no_register)
-                    FIXME("Only supporting one breg (%d -> %d)\n",
-                          loc->reg, dwarf2_map_register(op - DW_OP_breg0));
-                loc->reg = dwarf2_map_register(op - DW_OP_breg0);
+                    FIXME("Only supporting one breg (%s/%d -> %s/%d)\n",
+                          dbghelp_current_cpu->fetch_regname(loc->reg), loc->reg,
+                          dbghelp_current_cpu->fetch_regname(cvreg), cvreg);
+                loc->reg = cvreg;
             }
             stack[++stk] = dwarf2_leb128_as_signed(ctx);
             loc->kind = loc_regrel;
@@ -763,7 +767,8 @@ compute_location(dwarf2_traverse_context_t* ctx, struct location* loc,
             break;
         case DW_OP_fbreg:
             if (loc->reg != Wine_DW_no_register)
-                FIXME("Only supporting one reg (%d -> -2)\n", loc->reg);
+                FIXME("Only supporting one reg (%s/%d -> -2)\n",
+                      dbghelp_current_cpu->fetch_regname(loc->reg), loc->reg);
             if (frame && frame->kind == loc_register)
             {
                 loc->kind = loc_regrel;