#!/bin/env ruby NAMES = {} open("|class-dump -A #{ARGV[0]}").each_line do |line| m = line.match(/(.*);.*IMP=0x(.*)/) if m NAMES[m[2]] = "[#{m[1]}]" end end open("|arm-apple-darwin-otool -Vt #{ARGV[0]}").each_line do |line| parts = line.split(" ") if NAMES.has_key?(parts[0]) print "\n#{NAMES[parts[0]]}:\n" end # pretty print literal addresses (Best guess for now, we could do two passes) if /^000/.match(parts[1]) print "#{parts[0]}\t#{parts[1]}\t.long #{parts[1]}\n" else line.chomp! print line if NAMES.has_key?(parts[1]) print " ; #{NAMES[parts[1]]}" end print "\n" end end