class Metasm::BacktraceTrace
holds information on a backtracked expression near begin and end of instruction blocks (backtracked_for)
Attributes
address of the instruction in the block from which rebacktrace should start (use with from_subfuncret
bool) address is nil if the backtrace is from block start exclude_instr
is a bool saying if the backtrace should start at address or at the preceding instruction these are optional: if absent, expr is to be rebacktracked when a new codepath arrives at the beginning of the block
bool: true if this maps to a :x that should not have a from when resolved
address of the instruction in the block from which rebacktrace should start (use with from_subfuncret
bool) address is nil if the backtrace is from block start exclude_instr
is a bool saying if the backtrace should start at address or at the preceding instruction these are optional: if absent, expr is to be rebacktracked when a new codepath arrives at the beginning of the block
the Expression
to backtrace at this point
address of the instruction in the block from which rebacktrace should start (use with from_subfuncret
bool) address is nil if the backtrace is from block start exclude_instr
is a bool saying if the backtrace should start at address or at the preceding instruction these are optional: if absent, expr is to be rebacktracked when a new codepath arrives at the beginning of the block
length of r/w xref (in bytes)
maxdepth at the point of the object creation
the original backtracked Expression
address of the instruction that initiated the backtrace
:r/:w/:x
Public Class Methods
# File metasm/disassemble.rb, line 106 def initialize(expr, origin, orig_expr, type, len=nil, maxdepth=nil) @expr, @origin, @orig_expr, @type = expr, origin, orig_expr, type @len = len if len @maxdepth = maxdepth if maxdepth end
Public Instance Methods
# File metasm/disassemble.rb, line 113 def eql?(o) o.class == self.class and [ address, from_subfuncret, exclude_instr, origin, orig_expr, len, type, detached] == [o.address, o.from_subfuncret, o.exclude_instr, o.origin, o.orig_expr, o.len, o.type, o.detached] end
# File metasm/disassemble.rb, line 112 def hash ; [origin, expr].hash ; end