class Tracetool::IOS::AtosContext

Converts context to atos arguments

Constants

DEFAULT_ARCH

If no arch specified will use `arm64`

REQUIRED_ARGUMENTS

List of required argument names

Public Class Methods

new(ctx) click to toggle source
# File lib/tracetool/ios/atos_context.rb, line 11
def initialize(ctx)
  check_arguments(ctx)
  @load_address = ctx.load_address
  @binary_path = module_binary(ctx.xarchive, ctx.module_name)
  @arch = ctx.arch || 'arm64'
end

Public Instance Methods

to_args() click to toggle source
# File lib/tracetool/ios/atos_context.rb, line 18
def to_args
  %w[-o -l -arch].zip([@binary_path, @load_address, @arch]).flatten
end

Private Instance Methods

check_arguments(ctx) click to toggle source
# File lib/tracetool/ios/atos_context.rb, line 28
def check_arguments(ctx)
  REQUIRED_ARGUMENTS.each do |a|
    ctx[a] || raise(ArgumentError, "Missing `#{a}` value")
  end
end
module_binary(xarchive, module_name) click to toggle source
# File lib/tracetool/ios/atos_context.rb, line 24
def module_binary(xarchive, module_name)
  File.join(xarchive, 'dSYMs', "#{module_name}.app.dSYM", 'Contents', 'Resources', 'DWARF', module_name)
end