class Squash::Symbolicator::Lines
An aggregation of the `Symbolicator::Line`s of a binary class. This class is enumerable.
Public Class Methods
new()
click to toggle source
Creates a new empty aggregation.
# File lib/squash/symbolicator/lines.rb, line 48 def initialize @lines = Array.new end
Public Instance Methods
[](*args)
click to toggle source
Delegated to `Array`.
# File lib/squash/symbolicator/lines.rb, line 87 def [](*args) @lines[*args] end
add(start_address, file, lineno, col)
click to toggle source
Adds a line definition to the aggregation.
@param [Fixnum] start_address The lowest program counter address
corresponding to this method or function.
@param [String] file The path to the file where this line is found. @param [Fixnum] lineno The line number in `file`. @param [Fixnum] col The column number in `file`.
# File lib/squash/symbolicator/lines.rb, line 60 def add(start_address, file, lineno, col) index = @lines.find_index { |line| line.start_address > start_address } new_line = Squash::Symbolicator::Line.new(start_address, file, lineno, col) if index @lines.insert index, new_line else @lines << new_line end end
clear(*args)
click to toggle source
Delegated to `Array`.
# File lib/squash/symbolicator/lines.rb, line 89 def clear(*args) @lines.clear(*args) end
each(*args)
click to toggle source
Delegated to `Array`.
# File lib/squash/symbolicator/lines.rb, line 85 def each(*args) @lines.each(*args) end
for(address)
click to toggle source
Returns the nearest `Symbolicator::Line` to a given program counter address.
@param [Fixnum] address A program counter address. @return [Symbol, nil] The line corresponding to that address, or `nil` if
the address is not symbolicated.
# File lib/squash/symbolicator/lines.rb, line 77 def for(address) return @lines.last if @lines.last && @lines.last.start_address == address idx = @lines.find_index { |line| address < line.start_address } return nil unless idx return @lines[idx - 1] end
inspect()
click to toggle source
@private
# File lib/squash/symbolicator/lines.rb, line 94 def inspect() "#<#{self.class} [#{size} lines]>" end
size(*args)
click to toggle source
Delegated to `Array`.
# File lib/squash/symbolicator/lines.rb, line 91 def size(*args) @lines.size(*args) end