module Tracetool::Android::NativeTraceEnhancer
Methods for stack trace string normalization
Constants
- NATIVE_DUMP_HEADER
Default header for android backtrace
Public Instance Methods
add_header(string)
click to toggle source
Add dummy header for stack trace body
# File lib/tracetool/android/native.rb, line 45 def add_header(string) NATIVE_DUMP_HEADER + sanitize(string) end
unpack(trace)
click to toggle source
Converts packed stack trace into ndk-stack compatible format @param [String] trace packed stack trace @return well formed stack trace
# File lib/tracetool/android/native.rb, line 37 def unpack(trace) dump_body = prepare(trace) .map .with_index { |line, index| convert_line(line, index) } add_header(dump_body.join("\n")) end
Private Instance Methods
convert_line(line, index)
click to toggle source
# File lib/tracetool/android/native.rb, line 55 def convert_line(line, index) frame = index addr = line[/^(-?\d+) (.*)$/, 1] lib = (line[/^(-?\d+) (.*)$/, 2] || '').strip # nil safe ' #%02<frame>i pc %08<addr>x %<lib>s' .format(frame: frame, addr: addr, lib: lib) end
prepare(trace)
click to toggle source
# File lib/tracetool/android/native.rb, line 51 def prepare(trace) trace.gsub('>>><<<', '')[/<<<(.+)>>>/, 1].split(';') end
sanitize(string)
click to toggle source
If needed here we'll drop all unneeded leading characters from each stack trace line. This may be needed to add NATIVE_DUMP_HEADER
correctly
# File lib/tracetool/android/native.rb, line 66 def sanitize(string) string end