module Dwarftree

Constants

VERSION

Public Class Methods

run(object, dies:, subprograms:, show_size:, sort_size:, merge:, flat:) click to toggle source

@param [String] object @param [Array<String>] dies @param [Array<String>] subprograms @param [TrueClass,FalseClass] show_size @param [TrueClass,FalseClass] sort_size @param [TrueClass,FalseClass] merge @param [TrueClass,FalseClass] flat

# File lib/dwarftree.rb, line 14
def self.run(object, dies:, subprograms:, show_size:, sort_size:, merge:, flat:)
  begin
    nodes = DebugInfoParser.parse(object, flat: flat)
  rescue DebugInfoParser::CommandError => e
    abort "ERROR: #{e.message}"
  end
  if nodes.empty?
    abort "Debug info was not found in #{object.dump}"
  end

  Dwarftree::TreeFilter.new(dies: dies, subprograms: subprograms).filter!(nodes)
  if merge
    Dwarftree::TreeMerger.merge!(nodes)
  end
  Dwarftree::TreeVisualizer.new(show_size: show_size, sort_size: sort_size).visualize(nodes)
end