class Dread::Trace

Attributes

cpu[R]
data[R]
function[R]
line[R]
pid[R]
task[R]
timestamp[R]

Public Class Methods

new(line) click to toggle source
# File lib/dread/trace.rb, line 12
def initialize(line)
  @line = line
  @task = ''
  @pid = 0
  @cpu = 0
  @timestamp = 0
  @function = ''
  @data = ''

  parse!
end

Public Instance Methods

to_s() click to toggle source
# File lib/dread/trace.rb, line 24
def to_s
  "#{'%.9f' % timestamp}: #{task}-#{pid} [#{cpu}] #{function}: #{data}"
end

Protected Instance Methods

parse!() click to toggle source
# File lib/dread/trace.rb, line 30
def parse!
  md = @line.match(re)

  raise "Can't parse '#{@line}'" unless md

  @cpu = md[:cpu].to_i
  @data = md[:data]
  @function = md[:function]
  @pid = md[:pid].to_i
  @task = md[:task]
  @timestamp = md[:timestamp].to_f
end
re() click to toggle source
# File lib/dread/trace.rb, line 43
def re
  /(?<task>[a-z0-9\/-]+)-(?<pid>\d+)\s+\[(?<cpu>\d+)\]\s+....\s+(?<timestamp>[0-9.]+):\s+(?<function>\w+):\s+(?<data>.*)$/
end