rendered paste bodyIndex: frysk-core/frysk/debuginfo/DebugInfo.java===================================================================RCS file: /cvs/frysk/frysk-core/frysk/debuginfo/DebugInfo.java,vretrieving revision 1.10diff -u -r1.10 DebugInfo.java--- frysk-core/frysk/debuginfo/DebugInfo.java 14 Jun 2007 03:20:33 -0000 1.10+++ frysk-core/frysk/debuginfo/DebugInfo.java 25 Jun 2007 17:44:11 -0000@@ -507,4 +507,9 @@ return debugInfoEvaluator[0].getValue(die); } + public Value get(DwarfDie die)+ {+ return debugInfoEvaluator[0].get(die);+ } + }Index: frysk-core/frysk/debuginfo/DebugInfoEvaluator.java===================================================================RCS file: /cvs/frysk/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java,vretrieving revision 1.14diff -u -r1.14 DebugInfoEvaluator.java--- frysk-core/frysk/debuginfo/DebugInfoEvaluator.java 22 Jun 2007 15:07:22 -0000 1.14+++ frysk-core/frysk/debuginfo/DebugInfoEvaluator.java 25 Jun 2007 17:44:12 -0000@@ -252,10 +252,10 @@ pc = currentFrame.getAdjustedAddress(); - List ops = varDieP.getAddr();+ List ops = varDieP.getAddr(); if (ops.size() == 0 || ((DwarfDie.DwarfOp)ops.get(0)).operator == -1)- return 0;+ return 0; if (((DwarfDie.DwarfOp)ops.get(0)).operator == DwOpEncodings.DW_OP_addr_) { setSuccessful(true);@@ -274,7 +274,6 @@ // DW_OP_fbreg setSuccessful(true); Isa isa = currentFrame.getTask().getIsa();- if (isa instanceof frysk.proc.IsaIA32) regval = swapBytes(currentFrame.getReg(x86regnumbers[reg])); else if (isa instanceof frysk.proc.IsaX8664)@@ -411,7 +410,7 @@ setSuccessful(true); if (isa instanceof frysk.proc.IsaIA32) reg = x86regnumbers[(int)reg];-+ return reg; } @@ -758,24 +757,35 @@ } } ++ public Value get (String s)+ {+ DwarfDie varDie = getDie(s);+ if (varDie == null)+ return (null);+ + return get(varDie);+ }+ /* * (non-Javadoc) * * @see frysk.expr.CppSymTab#get(java.lang.String) */- public Value get (String s)+ public Value get (DwarfDie varDie) { VariableAccessor[] variableAccessor = { new AccessDW_FORM_block(), new AccessDW_FORM_data() }; ByteOrder byteorder = task.getIsa().getByteOrder(); - DwarfDie varDie = getDie(s); if (varDie == null) return (null); + String s = varDie.getName();+ for (int i = 0; i < variableAccessor.length; i++) {- try+ try { DwarfDie type = varDie.getUltimateType(); // if there is no type then setup a sentinel@@ -793,6 +803,7 @@ case BaseTypes.baseTypeInteger: case BaseTypes.baseTypeUnsignedInteger: {+ int intVal = variableAccessor[i].getInt(varDie, 0); if (variableAccessor[i].isSuccessful() == false) continue;