frysk.stack
Class LibunwindAddressSpace

java.lang.Object
  extended by lib.unwind.AddressSpace
      extended by frysk.stack.LibunwindAddressSpace

 class LibunwindAddressSpace
extends AddressSpace


Field Summary
private static Log fine
           
private  ISA isa
           
private  RegisterMap registerMap
           
private  Task task
           
 
Fields inherited from class lib.unwind.AddressSpace
unwAddressSpace, unwinder
 
Constructor Summary
LibunwindAddressSpace(Task task, ByteOrder byteOrder)
           
 
Method Summary
 int accessMem(long addr, byte[] valp, boolean write)
           
 int accessReg(Number regnum, byte[] fpvalp, boolean write)
          Access LIBUNWIND Register REGNUM.
 int findProcInfo(long ip, boolean needUnwindInfo, ProcInfo procInfo)
          Locate the information needed to unwind a particular procedure.
 long getReg(Number regnum)
          See UnwindH.hxx:access_reg(write=false); only used for small integer registers.
 void putUnwindInfo(ProcInfo procInfo)
          Used to free a ProcInfo object created with needUnwindInfo as true.
 void setReg(Number regnum, long regval)
          See UnwindH.hxx:access_reg(write=true); only used for small integer registers.
private static Unwind unwinder(ISA isa)
           
 
Methods inherited from class lib.unwind.AddressSpace
createCursor, finalize, setCachingPolicy
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fine

private static final Log fine

task

private final Task task

isa

private final ISA isa

registerMap

private final RegisterMap registerMap
Constructor Detail

LibunwindAddressSpace

LibunwindAddressSpace(Task task,
                      ByteOrder byteOrder)
Method Detail

unwinder

private static Unwind unwinder(ISA isa)

accessMem

public int accessMem(long addr,
                     byte[] valp,
                     boolean write)
Specified by:
accessMem in class AddressSpace

accessReg

public int accessReg(Number regnum,
                     byte[] fpvalp,
                     boolean write)
Description copied from class: AddressSpace
Access LIBUNWIND Register REGNUM.

Specified by:
accessReg in class AddressSpace

getReg

public long getReg(Number regnum)
Description copied from class: AddressSpace
See UnwindH.hxx:access_reg(write=false); only used for small integer registers.

Specified by:
getReg in class AddressSpace

setReg

public void setReg(Number regnum,
                   long regval)
Description copied from class: AddressSpace
See UnwindH.hxx:access_reg(write=true); only used for small integer registers.

Specified by:
setReg in class AddressSpace

findProcInfo

public int findProcInfo(long ip,
                        boolean needUnwindInfo,
                        ProcInfo procInfo)
Description copied from class: AddressSpace
Locate the information needed to unwind a particular procedure.

Specified by:
findProcInfo in class AddressSpace
Parameters:
ip - the instruction-address inside the procedure whose information is needed.
needUnwindInfo - whether the format, unwind_info_size and unwind_info fields of the returned ProcInfo should be set.
Returns:
A ProcInfo object holding the processes info.

putUnwindInfo

public void putUnwindInfo(ProcInfo procInfo)
Description copied from class: AddressSpace
Used to free a ProcInfo object created with needUnwindInfo as true.

Specified by:
putUnwindInfo in class AddressSpace
Parameters:
procInfo - the procInfo object to be freed.