linkmap_ios 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +8 -3
- data/lib/linkmap_ios.rb +15 -4
- data/lib/linkmap_ios/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2be3cf43715b456d204bf882857f69167bfb3bd9
|
4
|
+
data.tar.gz: cc2f5421e132e3b151841996104a7d31cb97efff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eda4e25efb244e73340ea2d3cec02c26e3aa4267c9bc0f8b5e04b76ff29fc2a5fa449f935017ff5c63b3ceafe52d93a8271bbfbf6d5137c26b0e5784aacd95e7
|
7
|
+
data.tar.gz: 51553134c934f36a829e1207fe7f65d662626181c55051993f641da0f4fec7fbcef9288b560bf8b9b7419257f70876358b5a388e033302c09137d02d9d661a24
|
data/README.md
CHANGED
@@ -32,13 +32,18 @@ Parse link map file and output. Will output Ruby Hash by default
|
|
32
32
|
Byte is the default unit in all kind of output.
|
33
33
|
|
34
34
|
## Release Note
|
35
|
-
### [0.1.
|
36
|
-
1.
|
37
|
-
|
35
|
+
### [0.1.3] 2018-06-07
|
36
|
+
1. Support .a file
|
37
|
+
2. Minor bugfixs
|
38
|
+
|
39
|
+
### [0.1.1] 2017-03-29
|
38
40
|
1. Increase the concurrency, add dead stripped symbol handle in symbol analyze
|
39
41
|
2. Add simple section analyze
|
40
42
|
3. Add uncounted section number in report
|
41
43
|
|
44
|
+
### [0.1.0] 2016-08-09
|
45
|
+
1. Finish all base functions
|
46
|
+
|
42
47
|
## TODO
|
43
48
|
1. Add test specs
|
44
49
|
2. Add full sections analysis function
|
data/lib/linkmap_ios.rb
CHANGED
@@ -3,12 +3,12 @@ require "filesize"
|
|
3
3
|
require "json"
|
4
4
|
|
5
5
|
module LinkmapIos
|
6
|
-
Library = Struct.new(:name, :size, :objects, :dead_symbol_size)
|
6
|
+
Library = Struct.new(:name, :size, :objects, :dead_symbol_size, :pod)
|
7
7
|
|
8
8
|
class LinkmapParser
|
9
9
|
attr_reader :id_map
|
10
10
|
attr_reader :library_map
|
11
|
-
|
11
|
+
|
12
12
|
def initialize(file_path)
|
13
13
|
@file_path = file_path
|
14
14
|
@id_map = {}
|
@@ -23,7 +23,7 @@ module LinkmapIos
|
|
23
23
|
parse
|
24
24
|
|
25
25
|
total_size = @library_map.values.map(&:size).inject(:+)
|
26
|
-
detail = @library_map.values.map { |lib| {:library => lib.name, :size => lib.size, :dead_symbol_size => lib.dead_symbol_size, :objects => lib.objects.map { |o| @id_map[o][:object] }}}
|
26
|
+
detail = @library_map.values.map { |lib| {:library => lib.name, :pod => lib.pod, :size => lib.size, :dead_symbol_size => lib.dead_symbol_size, :objects => lib.objects.map { |o| @id_map[o][:object] }}}
|
27
27
|
total_dead_size = @library_map.values.map(&:dead_symbol_size).inject(:+)
|
28
28
|
|
29
29
|
# puts total_size
|
@@ -105,6 +105,16 @@ module LinkmapIos
|
|
105
105
|
|
106
106
|
library = (@library_map[$2] or Library.new($2, 0, [], 0))
|
107
107
|
library.objects << id
|
108
|
+
if text.include?('/Pods/')
|
109
|
+
# Sample:
|
110
|
+
# 0x108BE58D5 0x000000AD [7167] literal string: /var/folders/80/d5nlb_0d05n7bq58h2fy181h0000gp/T/d20180412-62284-c4qbkv/sandbox.SAKPodSharper-React-0.54.3.2@20180412210546/Pods/React/ReactCommon/jschelpers/JSCHelpers.cpp
|
111
|
+
# podname is word after "/Pods/", example:React
|
112
|
+
divstr = text.split('/Pods/').last
|
113
|
+
podname = divstr.split('/').first
|
114
|
+
library.pod = podname
|
115
|
+
else
|
116
|
+
library.pod = ''
|
117
|
+
end
|
108
118
|
@library_map[$2] = library
|
109
119
|
elsif text =~ /\[(.*)\].*\/(.*)/
|
110
120
|
# Sample:
|
@@ -126,9 +136,10 @@ module LinkmapIos
|
|
126
136
|
end
|
127
137
|
@id_map[id] = {:library => lib, :object => $2}
|
128
138
|
|
129
|
-
library = (@library_map[lib] or Library.new(lib, 0, [], 0))
|
139
|
+
library = (@library_map[lib] or Library.new(lib, 0, [], 0, ''))
|
130
140
|
library.objects << id
|
131
141
|
@library_map[lib] = library
|
142
|
+
|
132
143
|
elsif text =~ /\[(.*)\]\s*([\w\s]+)/
|
133
144
|
# Sample:
|
134
145
|
# [ 0] linker synthesized
|
data/lib/linkmap_ios/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linkmap_ios
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesse Luo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|