dbghelp: implement literal dwarf opcodes

André Hentschel nerv at dawncrow.de
Sun Dec 20 10:27:35 CST 2009


debugging msys throwed some up, so i implement them
PS: sorry its no 64-bit support patch ;)
---
 dlls/dbghelp/dwarf.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 16ea011..d9e52d3 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -684,6 +684,15 @@ compute_location(dwarf2_traverse_context_t* ctx, struct location* loc,
         op = dwarf2_parse_byte(ctx);
         switch (op)
         {
+        case DW_OP_lit0:  case DW_OP_lit1:  case DW_OP_lit2:  case DW_OP_lit3:
+        case DW_OP_lit4:  case DW_OP_lit5:  case DW_OP_lit6:  case DW_OP_lit7:
+        case DW_OP_lit8:  case DW_OP_lit9:  case DW_OP_lit10: case DW_OP_lit11:
+        case DW_OP_lit12: case DW_OP_lit13: case DW_OP_lit14: case DW_OP_lit15:
+        case DW_OP_lit16: case DW_OP_lit17: case DW_OP_lit18: case DW_OP_lit19:
+        case DW_OP_lit20: case DW_OP_lit21: case DW_OP_lit22: case DW_OP_lit23:
+        case DW_OP_lit24: case DW_OP_lit25: case DW_OP_lit26: case DW_OP_lit27:
+        case DW_OP_lit28: case DW_OP_lit29: case DW_OP_lit30: case DW_OP_lit31:
+            stack[++stk] = op - DW_OP_lit0; break;
         case DW_OP_addr:    stack[++stk] = dwarf2_parse_addr(ctx); break;
         case DW_OP_const1u: stack[++stk] = dwarf2_parse_byte(ctx); break;
         case DW_OP_const1s: stack[++stk] = (long)(signed char)dwarf2_parse_byte(ctx); break;
-- 

Best Regards, André Hentschel



More information about the wine-patches mailing list