class Fastlane::Helper::LinkMap::Section
Sections: Address Size Segment
Section
0x1000048A0 0x055656A8 __TEXT __text 0x105569F48 0x000090E4 __TEXT __stubs 0x10557302C 0x000079D4 __TEXT __stub_helper 0x10557AA00 0x002D4E1A __TEXT __cstring
Attributes
end_addr[RW]
name[RW]
residual_size[RW]
segment[RW]
start_addr[RW]
symbol_size[RW]
Public Class Methods
new(line)
click to toggle source
# File lib/fastlane/plugin/analyze_ios_linkmap/helper/linkmap_section.rb, line 30 def initialize(line) lines = line.split(' ').map(&:strip) address = lines[0] size = lines[1] segment = lines[2] section = lines[3] # puts "address: #{address}" # puts "size: #{size}" # puts "segment: #{segment}" # puts "section: #{section}" start_addr = address.to_i(16) residual_size = size.to_i(16) end_addr = start_addr + residual_size # puts "start_addr: #{start_addr}" # puts "residual_size: #{residual_size}" # puts "end_addr: #{end_addr}" @name = section @symbol_size = 0 @residual_size = residual_size @start_addr = start_addr @end_addr = end_addr @segment = segment end
Public Instance Methods
key()
click to toggle source
【注意】 `section name` may be dulicate in different segment 所以使用 <segment_name + section_name> 作为 map 的 key 存储 @section_map = section
# File lib/fastlane/plugin/analyze_ios_linkmap/helper/linkmap_section.rb, line 61 def key "#{segment}:#{name}".to_sym end
to_hash()
click to toggle source
# File lib/fastlane/plugin/analyze_ios_linkmap/helper/linkmap_section.rb, line 17 def to_hash { name: @name, symbol_size: @symbol_size, format_symbol_size: FileHelper.format_size(@symbol_size), residual_size: @residual_size, format_residual_size: FileHelper.format_size(@residual_size), start_addr: @start_addr, end_addr: @end_addr, segment: @segment } end
to_segment()
click to toggle source
# File lib/fastlane/plugin/analyze_ios_linkmap/helper/linkmap_section.rb, line 65 def to_segment key.to_s.split(':')[0].to_sym end