isource_lldb 0.3.2 → 0.3.5
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/lib/setup +313 -223
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4ef9a16c3ff98ebb83981c4263f32a818f6e3102da0d10a98000ff68d28dd687
|
|
4
|
+
data.tar.gz: 68ad88b4fa34c3e095eb4489b13e3181d0ec1d067f02c447e50f5830edf6db5b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 778800d3f3dc6631682fea29e3ac596bbd211717dd06ece2dfd20ff97f1aa867756277c2cf54729cc5c699bcb06bbc1882928704ab9b86173cfd2390e44a188e
|
|
7
|
+
data.tar.gz: e59009673e142c6819dee3a734a16be90c20aa801caa158772fe21984a2d20d08a78be3761285e88706df93b3dddeeefd864835c613025a5f9fdd019daab9102
|
data/lib/setup
CHANGED
|
@@ -16,287 +16,377 @@ drrr_job_inis_dir =source_lldb_dir +"/drrr_job_inis"#line:19
|
|
|
16
16
|
drrr_job_inis_dir_modules =drrr_job_inis_dir +"/modules"#line:20
|
|
17
17
|
drrr_job_inis_addr ='ssh://git@gitlab.qiyi.domain:10022/qytools/drrr_job_inis.git'#line:21
|
|
18
18
|
project_info_cache =source_lldb_dir +"/project_info_cache.txt"#line:22
|
|
19
|
-
def lz_error (
|
|
20
|
-
print ("internal error code : "+str (
|
|
21
|
-
def lz_log (
|
|
19
|
+
def lz_error (O00OO000OOOOOOO00 ):#line:24
|
|
20
|
+
print ("internal error code : "+str (O00OO000OOOOOOO00 ))#line:25
|
|
21
|
+
def lz_log (O0OOO000O0OO00O0O ):#line:27
|
|
22
22
|
pass #line:30
|
|
23
23
|
def manage_source_dir ():#line:33
|
|
24
|
-
|
|
25
|
-
if not
|
|
24
|
+
OOO0OO00OO0O00O0O =os .path .exists (source_lldb_dir )#line:34
|
|
25
|
+
if not OOO0OO00OO0O00O0O :#line:35
|
|
26
26
|
os .makedirs (source_lldb_dir )#line:36
|
|
27
27
|
os .makedirs (source_code_dir )#line:37
|
|
28
28
|
else :#line:38
|
|
29
|
-
|
|
30
|
-
if not
|
|
29
|
+
OO0OOOO00000OO00O =os .path .exists (source_code_dir )#line:39
|
|
30
|
+
if not OO0OOOO00000OO00O :#line:40
|
|
31
31
|
os .makedirs (source_code_dir )#line:41
|
|
32
32
|
def create_cache_file ():#line:44
|
|
33
|
-
|
|
34
|
-
if not
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
def write_cache_file (
|
|
38
|
-
if
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def read_cache_file (
|
|
45
|
-
|
|
46
|
-
with open (project_info_cache ,'r',encoding ='utf-8')as
|
|
47
|
-
|
|
48
|
-
for
|
|
49
|
-
|
|
50
|
-
if
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
33
|
+
OOO00O00OOO0OOOO0 =os .path .exists (project_info_cache )#line:45
|
|
34
|
+
if not OOO00O00OOO0OOOO0 :#line:46
|
|
35
|
+
OO0OOOOO00OO00OOO =open (project_info_cache ,'w')#line:47
|
|
36
|
+
OO0OOOOO00OO00OOO .close ()#line:48
|
|
37
|
+
def write_cache_file (OO000OO00OO00OOOO ):#line:50
|
|
38
|
+
if OO000OO00OO00OOOO [0 ]!=None and OO000OO00OO00OOOO [1 ]!=None and OO000OO00OO00OOOO [2 ]!=None and OO000OO00OO00OOOO [3 ]!=None :#line:51
|
|
39
|
+
O000OOO000O0O0O0O =list (OO000OO00OO00OOOO )#line:52
|
|
40
|
+
OO0OOO0O000OOOOO0 ='---'.join (O000OOO000O0O0O0O )#line:53
|
|
41
|
+
O0OOOO00OOO0O0OO0 =open (project_info_cache ,'a+')#line:54
|
|
42
|
+
O0OOOO00OOO0O0OO0 .write (OO0OOO0O000OOOOO0 +"\n")#line:55
|
|
43
|
+
O0OOOO00OOO0O0OO0 .close ()#line:56
|
|
44
|
+
def read_cache_file (OOO000OO0OOOOOO00 ):#line:58
|
|
45
|
+
OOOO00O00OO0O000O =None #line:59
|
|
46
|
+
with open (project_info_cache ,'r',encoding ='utf-8')as OOO00O00O00O00OOO :#line:60
|
|
47
|
+
O0O000OO0O0OO000O =OOO00O00O00O00OOO .readlines ()#line:61
|
|
48
|
+
for OO000O0OO00OO0OOO in range (0 ,len (O0O000OO0O0OO000O )):#line:62
|
|
49
|
+
O0O0OO000OOO00O0O =re .search (OOO000OO0OOOOOO00 ,O0O000OO0O0OO000O [OO000O0OO00OO0OOO ])#line:63
|
|
50
|
+
if O0O0OO000OOO00O0O !=None :#line:64
|
|
51
|
+
OO0O000OO00O0OO0O =O0O000OO0O0OO000O [OO000O0OO00OO0OOO ]#line:65
|
|
52
|
+
OO0OO00OOOO00000O =OO0O000OO00O0OO0O .split ('---')#line:66
|
|
53
|
+
OOOO00O00OO0O000O =tuple (OO0OO00OOOO00000O )#line:67
|
|
54
54
|
break #line:68
|
|
55
|
-
return
|
|
55
|
+
return OOOO00O00OO0O000O #line:69
|
|
56
56
|
def manage_job_inis ():#line:72
|
|
57
|
-
|
|
58
|
-
if
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if
|
|
57
|
+
OO0O000OO0OOO0OO0 =os .path .exists (drrr_job_inis_dir )#line:73
|
|
58
|
+
if OO0O000OO0OOO0OO0 ==True :#line:74
|
|
59
|
+
OO0OO00OOO0OOO0O0 ="cd "+drrr_job_inis_dir +"; git pull"#line:75
|
|
60
|
+
O0000OOO00000OO0O =os .popen (OO0OO00OOO0OOO0O0 )#line:76
|
|
61
|
+
OO0O00OOO000O0000 =O0000OOO00000OO0O .read ()#line:77
|
|
62
|
+
OOOOO0000O0000O00 =re .search ("fatal",OO0O00OOO000O0000 )#line:78
|
|
63
|
+
if OOOOO0000O0000O00 !=None :#line:79
|
|
64
64
|
lz_error (0 )#line:80
|
|
65
65
|
else :#line:81
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if
|
|
66
|
+
OOOO00OOO0O000O0O ="git clone "+drrr_job_inis_addr +" "+drrr_job_inis_dir #line:82
|
|
67
|
+
O0000OOO00000OO0O =os .popen (OOOO00OOO0O000O0O )#line:83
|
|
68
|
+
OO0O00OOO000O0000 =O0000OOO00000OO0O .read ()#line:84
|
|
69
|
+
OOOOO0000O0000O00 =re .search ("fatal",OO0O00OOO000O0000 )#line:85
|
|
70
|
+
if OOOOO0000O0000O00 !=None :#line:86
|
|
71
71
|
lz_error (0 )#line:87
|
|
72
|
-
def get_debug_file_path (
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
if len (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if len (
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if len (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return
|
|
92
|
-
def get_inis_info (
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
for
|
|
99
|
-
if
|
|
100
|
-
|
|
101
|
-
|
|
72
|
+
def get_debug_file_path (OOOOO0OO000000O0O ):#line:90
|
|
73
|
+
O0OO000OOO0OOOO0O =lldb .debugger .GetCommandInterpreter ()#line:91
|
|
74
|
+
O00000O0O00OOO000 =lldb .SBCommandReturnObject ()#line:92
|
|
75
|
+
O0OO000OOO0OOOO0O .HandleCommand ('image lookup -v --address '+OOOOO0OO000000O0O ,O00000O0O00OOO000 )#line:93
|
|
76
|
+
OO0OOOO0OO00OO0O0 =O00000O0O00OOO000 .GetOutput ()#line:94
|
|
77
|
+
O0O0OOO0OOOOO0OOO =""#line:96
|
|
78
|
+
OO00O0000O00O00OO =re .search ('error',OO0OOOO0OO00OO0O0 )#line:97
|
|
79
|
+
if OO00O0000O00O00OO !=None :#line:98
|
|
80
|
+
return O0O0OOO0OOOOO0OOO #line:99
|
|
81
|
+
OOOOOOOO000OOOO00 =OO0OOOO0OO00OO0O0 .split ("\n")#line:102
|
|
82
|
+
if len (OOOOOOOO000OOOO00 )>3 :#line:103
|
|
83
|
+
OOO0OOOOO00O000O0 =OOOOOOOO000OOOO00 [3 ].strip ()#line:104
|
|
84
|
+
O000OO0O0O00O000O =OOO0OOOOO00O000O0 .split (",")#line:106
|
|
85
|
+
if len (O000OO0O0O00O000O )>1 :#line:107
|
|
86
|
+
OO000OOOO0OO00000 =O000OO0O0O00O000O [1 ].strip ()#line:108
|
|
87
|
+
O0O0OOO0O0O0OOO0O =OO000OOOO0OO00000 .split ("=")#line:110
|
|
88
|
+
if len (O0O0OOO0O0O0OOO0O )>1 :#line:111
|
|
89
|
+
O00O0O000O0OO00OO =O0O0OOO0O0O0OOO0O [1 ].strip ()#line:112
|
|
90
|
+
O0O0OOO0OOOOO0OOO =O00O0O000O0OO00OO .replace ('\"','')#line:114
|
|
91
|
+
return O0O0OOO0OOOOO0OOO #line:116
|
|
92
|
+
def get_inis_info (OO00000000OO0OO00 ):#line:119
|
|
93
|
+
O0OO00O000OOOOOO0 =None #line:121
|
|
94
|
+
OO0OO00O0OOO00OO0 =None #line:122
|
|
95
|
+
OO0O0O0OOOO00OO00 =None #line:123
|
|
96
|
+
O000OOO0OO00OOOO0 =None #line:124
|
|
97
|
+
O0OOOOOOOOOOOOOO0 =OO00000000OO0OO00 .split ("/")#line:127
|
|
98
|
+
for OOOO00000O000000O in range (0 ,len (O0OOOOOOOOOOOOOO0 )):#line:128
|
|
99
|
+
if O0OOOOOOOOOOOOOO0 [OOOO00000O000000O ]=="MODULE_DIR":#line:129
|
|
100
|
+
OO0OO00O0OOO00OO0 =O0OOOOOOOOOOOOOO0 [OOOO00000O000000O +1 ]#line:130
|
|
101
|
+
O0OO00O000OOOOOO0 =O0OOOOOOOOOOOOOO0 [OOOO00000O000000O +1 ]#line:131
|
|
102
102
|
break #line:132
|
|
103
|
-
if
|
|
104
|
-
|
|
105
|
-
for
|
|
106
|
-
|
|
107
|
-
with open (
|
|
108
|
-
|
|
109
|
-
for
|
|
110
|
-
|
|
111
|
-
if
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
for
|
|
116
|
-
|
|
117
|
-
if len (
|
|
118
|
-
|
|
103
|
+
if OO0OO00O0OOO00OO0 !=None and len (OO0OO00O0OOO00OO0 )>0 :#line:139
|
|
104
|
+
OOO0O0000O000OOOO =os .listdir (drrr_job_inis_dir_modules )#line:140
|
|
105
|
+
for OOOO00000O000000O in range (0 ,len (OOO0O0000O000OOOO )):#line:141
|
|
106
|
+
OOOOOO0OO0O00O00O =drrr_job_inis_dir_modules +"/"+OOO0O0000O000OOOO [OOOO00000O000000O ]#line:142
|
|
107
|
+
with open (OOOOOO0OO0O00O00O ,'r',encoding ='utf-8')as O0O0O0O0O000OOOOO :#line:144
|
|
108
|
+
O000OO0O0OO00OOOO =O0O0O0O0O000OOOOO .readlines ()#line:145
|
|
109
|
+
for OOOO00000O000000O in range (0 ,len (O000OO0O0OO00OOOO )):#line:146
|
|
110
|
+
O0O00OOO00O00O000 =re .search (OO0OO00O0OOO00OO0 ,O000OO0O0OO00OOOO [OOOO00000O000000O ])#line:147
|
|
111
|
+
if O0O00OOO00O00O000 !=None :#line:148
|
|
112
|
+
OO0O0O0OOOO00OO00 =OOO0O0000O000OOOO [OOOO00000O000000O ]#line:149
|
|
113
|
+
OO000OOOO00OOO000 =OOOO00000O000000O -5 if OOOO00000O000000O >5 else 0 #line:150
|
|
114
|
+
O0OO000OO0OOO0O0O =OOOO00000O000000O +5 if OOOO00000O000000O +5 <len (O000OO0O0OO00OOOO )else len (O000OO0O0OO00OOOO )#line:151
|
|
115
|
+
for OOOOOOOO0O0O000O0 in range (OO000OOOO00OOO000 ,O0OO000OO0OOO0O0O ):#line:152
|
|
116
|
+
OOO000000O00O00O0 =re .findall ("ssh://git@gitlab.qiyi.domain:[^/]+?/.*?"+O0OO00O000OOOOOO0 +"*?[^0~9]?.git",O000OO0O0OO00OOOO [OOOOOOOO0O0O000O0 ])#line:153
|
|
117
|
+
if len (OOO000000O00O00O0 )>0 :#line:154
|
|
118
|
+
O000OOO0OO00OOOO0 =OOO000000O00O00O0 [0 ]#line:155
|
|
119
119
|
break #line:156
|
|
120
|
-
if
|
|
120
|
+
if O000OOO0OO00OOOO0 !=None :#line:157
|
|
121
121
|
break #line:158
|
|
122
|
-
if
|
|
122
|
+
if O000OOO0OO00OOOO0 !=None :#line:159
|
|
123
123
|
break #line:160
|
|
124
|
-
return (
|
|
125
|
-
def download_git_source_code (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
if not
|
|
129
|
-
os .makedirs (
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if
|
|
124
|
+
return (O0OO00O000OOOOOO0 ,O000OOO0OO00OOOO0 )#line:179
|
|
125
|
+
def download_git_source_code (O0OOO0OOO0O000OOO ,OO0000O0O0O0O0O00 ):#line:183
|
|
126
|
+
O00OOOO0O0OO0O0O0 =source_code_dir +"/"+O0OOO0OOO0O000OOO #line:184
|
|
127
|
+
O0000OOOOOO00000O =os .path .exists (O00OOOO0O0OO0O0O0 )#line:185
|
|
128
|
+
if not O0000OOOOOO00000O :#line:187
|
|
129
|
+
os .makedirs (O00OOOO0O0OO0O0O0 )#line:188
|
|
130
|
+
OOOOOO0OO0OOOOOO0 ="git clone "+OO0000O0O0O0O0O00 +" "+O00OOOO0O0OO0O0O0 #line:189
|
|
131
|
+
O0OOOOOOOO0000O00 =os .popen (OOOOOO0OO0OOOOOO0 )#line:190
|
|
132
|
+
O00OO00OO0OOOO0O0 =O0OOOOOOOO0000O00 .read ()#line:191
|
|
133
|
+
O00O0OO00000OOO0O =re .search ("fatal",O00OO00OO0OOOO0O0 )#line:192
|
|
134
|
+
if O00O0OO00000OOO0O !=None :#line:193
|
|
135
135
|
return ""#line:194
|
|
136
136
|
else :#line:195
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if
|
|
137
|
+
OO0O0O00O0OOO00OO ="cd "+O00OOOO0O0OO0O0O0 +"; git pull"#line:196
|
|
138
|
+
O0OOOOOOOO0000O00 =os .popen (OO0O0O00O0OOO00OO )#line:197
|
|
139
|
+
O00OO00OO0OOOO0O0 =O0OOOOOOOO0000O00 .read ()#line:198
|
|
140
|
+
O00O0OO00000OOO0O =re .search ("fatal",O00OO00OO0OOOO0O0 )#line:199
|
|
141
|
+
if O00O0OO00000OOO0O !=None :#line:200
|
|
142
142
|
return ""#line:201
|
|
143
|
-
return
|
|
143
|
+
return O00OOOO0O0OO0O0O0 #line:203
|
|
144
144
|
def get_update_time ():#line:206
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if
|
|
152
|
-
|
|
153
|
-
if
|
|
154
|
-
|
|
155
|
-
if
|
|
156
|
-
|
|
157
|
-
if
|
|
158
|
-
|
|
159
|
-
if
|
|
160
|
-
|
|
161
|
-
if
|
|
162
|
-
|
|
163
|
-
if
|
|
164
|
-
|
|
165
|
-
if
|
|
166
|
-
|
|
167
|
-
if
|
|
168
|
-
|
|
169
|
-
if
|
|
170
|
-
|
|
171
|
-
if
|
|
172
|
-
|
|
173
|
-
if
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
return ' '.join (
|
|
177
|
-
def change_source_code_commit (
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
if
|
|
145
|
+
OOO00OOO0OOOO00O0 =user_dir +"/.cocoapods/repos/qiyi-podspecs/"#line:208
|
|
146
|
+
OOO000OOOOO0OO0O0 =os .path .getmtime (OOO00OOO0OOOO00O0 )#line:209
|
|
147
|
+
OO00O0OO0000OO000 =time .localtime (OOO000OOOOO0OO0O0 )#line:210
|
|
148
|
+
OO0OOOO0O00OOOO00 =time .strftime ("%m %d %H:%M:%S %Y",OO00O0OO0000OO000 )#line:213
|
|
149
|
+
OOO0O000OO00OO000 =OO0OOOO0O00OOOO00 .split (" ")#line:214
|
|
150
|
+
OO00O000O0O00OO0O =OOO0O000OO00OO000 [0 ]#line:215
|
|
151
|
+
if OO00O000O0O00OO0O =='1':#line:217
|
|
152
|
+
OO00O000O0O00OO0O ='Jan'#line:218
|
|
153
|
+
if OO00O000O0O00OO0O =='2':#line:219
|
|
154
|
+
OO00O000O0O00OO0O ='Feb'#line:220
|
|
155
|
+
if OO00O000O0O00OO0O =='3':#line:221
|
|
156
|
+
OO00O000O0O00OO0O ='Mar'#line:222
|
|
157
|
+
if OO00O000O0O00OO0O =='4':#line:223
|
|
158
|
+
OO00O000O0O00OO0O ='Apr'#line:224
|
|
159
|
+
if OO00O000O0O00OO0O =='5':#line:225
|
|
160
|
+
OO00O000O0O00OO0O ='May'#line:226
|
|
161
|
+
if OO00O000O0O00OO0O =='6':#line:227
|
|
162
|
+
OO00O000O0O00OO0O ='Jun'#line:228
|
|
163
|
+
if OO00O000O0O00OO0O =='7':#line:229
|
|
164
|
+
OO00O000O0O00OO0O ='Jul'#line:230
|
|
165
|
+
if OO00O000O0O00OO0O =='8':#line:231
|
|
166
|
+
OO00O000O0O00OO0O ='Aug'#line:232
|
|
167
|
+
if OO00O000O0O00OO0O =='9':#line:233
|
|
168
|
+
OO00O000O0O00OO0O ='Sep'#line:234
|
|
169
|
+
if OO00O000O0O00OO0O =='10':#line:235
|
|
170
|
+
OO00O000O0O00OO0O ='Oct'#line:236
|
|
171
|
+
if OO00O000O0O00OO0O =='11':#line:237
|
|
172
|
+
OO00O000O0O00OO0O ='Nov'#line:238
|
|
173
|
+
if OO00O000O0O00OO0O =='12':#line:239
|
|
174
|
+
OO00O000O0O00OO0O ='Dec'#line:240
|
|
175
|
+
OOO0O000OO00OO000 [0 ]=OO00O000O0O00OO0O #line:242
|
|
176
|
+
return ' '.join (OOO0O000OO00OO000 )#line:244
|
|
177
|
+
def change_source_code_commit (OO00OOOOO0OO0OOO0 ):#line:247
|
|
178
|
+
OOO0O0OOOO0O00OO0 =get_update_time ()#line:250
|
|
179
|
+
OOO00OOO0000OO000 ="cd "+OO00OOOOO0OO0OOO0 +"; git rev-list -n 1 --before=\""+OOO0O0OOOO0O00OO0 +"\" master"#line:252
|
|
180
|
+
OOO00O00OO0000O0O =os .popen (OOO00OOO0000OO000 )#line:253
|
|
181
|
+
OO000OOOO00OO0O0O =OOO00O00OO0000O0O .read ()#line:254
|
|
182
|
+
OO0OO0O00OO0OOOOO =re .search ("fatal",OO000OOOO00OO0O0O )#line:255
|
|
183
|
+
if OO0OO0O00OO0OOOOO !=None :#line:256
|
|
184
184
|
return False #line:257
|
|
185
185
|
else :#line:258
|
|
186
186
|
return True #line:259
|
|
187
|
-
def checkError (
|
|
188
|
-
|
|
189
|
-
if
|
|
187
|
+
def checkError (O000000O0OOO0OO00 ,O0O000O00000O000O ):#line:261
|
|
188
|
+
OOO0000OOOO0OOO00 =re .search (O0O000O00000O000O ,O000000O0OOO0OO00 )#line:262
|
|
189
|
+
if OOO0000OOOO0OOO00 ==None :#line:263
|
|
190
190
|
return True #line:264
|
|
191
191
|
else :#line:265
|
|
192
192
|
return False #line:266
|
|
193
|
-
def map_source_code (
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
if
|
|
193
|
+
def map_source_code (OOOOOOO0O0O0O0000 ,O00000O00OOO0OO0O ,OOOOO0O00OO0O000O ):#line:269
|
|
194
|
+
O00O00O0O00OOO00O =O00000O00OOO0OO0O .split (OOOOO0O00OO0O000O )#line:270
|
|
195
|
+
OOOO00OOO00OO000O =O00O00O0O00OOO00O [0 ]#line:271
|
|
196
|
+
OOO000O0OOOOO0O0O =lldb .debugger .GetCommandInterpreter ()#line:272
|
|
197
|
+
O00O0O0OOOO00OOOO =lldb .SBCommandReturnObject ()#line:273
|
|
198
|
+
OOO000O0OOOOO0O0O .HandleCommand ("settings append target.source-map "+OOOO00OOO00OO000O +" "+OOOOOOO0O0O0O0000 ,O00O0O0OOOO00OOOO )#line:274
|
|
199
|
+
O00O0OOO0OOOO0OO0 =O00O0O0OOOO00OOOO .GetOutput ()#line:275
|
|
200
|
+
OO0O000O0OOO0OOOO =re .search ('error',O00O0OOO0OOOO0OO0 )#line:276
|
|
201
|
+
if OO0O000O0OOO0OOOO ==None :#line:277
|
|
202
202
|
return True #line:278
|
|
203
203
|
else :#line:279
|
|
204
204
|
return False #line:280
|
|
205
|
-
def thread_step_inst (
|
|
205
|
+
def thread_step_inst (O0OOO0OO00OO000O0 ):#line:283
|
|
206
206
|
pass #line:284
|
|
207
|
-
def adjustStackFrame (
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
if
|
|
207
|
+
def adjustStackFrame (O0O0O0O00000OOO0O ):#line:287
|
|
208
|
+
O0O0O0O00000OOO0O .SetAsync (True )#line:298
|
|
209
|
+
OOOO00OOOO0O00OOO =O0O0O0O00000OOO0O .GetSelectedTarget ().GetProcess ().GetSelectedThread ()#line:303
|
|
210
|
+
O0OOOO0O000OOO000 =OOOO00OOOO0O00OOO .GetSelectedFrame ().GetFrameID ()#line:304
|
|
211
|
+
O00O0000OOOO0OOO0 =lldb .debugger .GetCommandInterpreter ()#line:306
|
|
212
|
+
O0OOOOOO00O00O0O0 =lldb .SBCommandReturnObject ()#line:307
|
|
213
|
+
O00O0000OOOO0OOO0 .HandleCommand ("thread step-inst",O0OOOOOO00O00O0O0 )#line:311
|
|
214
|
+
OO0O00OO0000O0OOO =O0OOOOOO00O00O0O0 .GetOutput ()#line:312
|
|
215
|
+
O0OO000O0O0O0000O =re .search ('error',OO0O00OO0000O0OOO )#line:313
|
|
216
|
+
if O0OO000O0O0O0000O !=None :#line:314
|
|
217
217
|
return False #line:315
|
|
218
218
|
time .sleep (0.2 )#line:316
|
|
219
|
-
|
|
219
|
+
O00O0000OOOO0OOO0 .HandleCommand ("thread step-over",O0OOOOOO00O00O0O0 )#line:317
|
|
220
220
|
time .sleep (0.5 )#line:318
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
if
|
|
221
|
+
O00O0000OOOO0OOO0 .HandleCommand ("frame select "+str (O0OOOO0O000OOO000 ),O0OOOOOO00O00O0O0 )#line:327
|
|
222
|
+
OO0O00OO0000O0OOO =O0OOOOOO00O00O0O0 .GetOutput ()#line:328
|
|
223
|
+
O0OO000O0O0O0000O =re .search ('error',OO0O00OO0000O0OOO )#line:329
|
|
224
|
+
if O0OO000O0O0O0000O !=None :#line:331
|
|
225
225
|
return False #line:332
|
|
226
|
-
def clean (
|
|
227
|
-
|
|
228
|
-
for
|
|
229
|
-
|
|
230
|
-
if os .path .isfile (
|
|
231
|
-
os .remove (
|
|
232
|
-
elif os .path .isdir (
|
|
233
|
-
shutil .rmtree (
|
|
226
|
+
def clean (O00O0O00OOOO00O00 ):#line:334
|
|
227
|
+
O0OOO0O0O000OO0O0 =os .listdir (O00O0O00OOOO00O00 )#line:335
|
|
228
|
+
for O000O0OO0OO00OO0O in O0OOO0O0O000OO0O0 :#line:336
|
|
229
|
+
OOOO0000OO0OOO00O =os .path .join (O00O0O00OOOO00O00 ,O000O0OO0OO00OO0O )#line:337
|
|
230
|
+
if os .path .isfile (OOOO0000OO0OOO00O ):#line:338
|
|
231
|
+
os .remove (OOOO0000OO0OOO00O )#line:339
|
|
232
|
+
elif os .path .isdir (OOOO0000OO0OOO00O ):#line:340
|
|
233
|
+
shutil .rmtree (OOOO0000OO0OOO00O )#line:341
|
|
234
234
|
pass #line:342
|
|
235
|
-
def processing (
|
|
236
|
-
sys .stdout .write (
|
|
235
|
+
def processing (O00O0000OO0OO0000 ):#line:352
|
|
236
|
+
sys .stdout .write (O00O0000OO0OO0000 )#line:353
|
|
237
237
|
sys .stdout .flush ()#line:354
|
|
238
|
-
def start (
|
|
238
|
+
def start (O0000O0OO0OO00O00 ,OO000O00OOOO0O0O0 ):#line:356
|
|
239
239
|
processing ("processing")#line:358
|
|
240
240
|
processing (".")#line:361
|
|
241
241
|
lz_log (1 )#line:364
|
|
242
|
-
|
|
243
|
-
lz_log (
|
|
244
|
-
if
|
|
242
|
+
OOOO0000O0OOOO0OO =get_debug_file_path (OO000O00OOOO0O0O0 )#line:365
|
|
243
|
+
lz_log (OOOO0000O0OOOO0OO )#line:366
|
|
244
|
+
if OOOO0000O0OOOO0OO ==None or len (OOOO0000O0OOOO0OO )==0 :#line:367
|
|
245
245
|
lz_error (1 )#line:368
|
|
246
246
|
return #line:369
|
|
247
247
|
processing (".")#line:374
|
|
248
248
|
lz_log (2 )#line:375
|
|
249
|
-
|
|
250
|
-
lz_log (
|
|
251
|
-
if
|
|
249
|
+
OO0OOOOOO0O000OO0 =get_inis_info (OOOO0000O0OOOO0OO )#line:376
|
|
250
|
+
lz_log (OO0OOOOOO0O000OO0 )#line:377
|
|
251
|
+
if OO0OOOOOO0O000OO0 [0 ]==None or OO0OOOOOO0O000OO0 [1 ]==None :#line:378
|
|
252
252
|
lz_error (2 )#line:379
|
|
253
253
|
return #line:380
|
|
254
254
|
processing (".")#line:384
|
|
255
255
|
lz_log (3 )#line:385
|
|
256
|
-
|
|
257
|
-
lz_log (
|
|
258
|
-
if
|
|
256
|
+
OOOOO0O0OO0OOOO00 =download_git_source_code (OO0OOOOOO0O000OO0 [0 ],OO0OOOOOO0O000OO0 [1 ])#line:386
|
|
257
|
+
lz_log (OOOOO0O0OO0OOOO00 )#line:387
|
|
258
|
+
if OOOOO0O0OO0OOOO00 ==None or len (OOOOO0O0OO0OOOO00 )==0 :#line:388
|
|
259
259
|
lz_error (3 )#line:389
|
|
260
260
|
return #line:390
|
|
261
261
|
processing (".")#line:394
|
|
262
262
|
lz_log (4 )#line:395
|
|
263
|
-
|
|
264
|
-
lz_log (
|
|
265
|
-
if
|
|
263
|
+
O00O00O0OOOOOOOOO =change_source_code_commit (OOOOO0O0OO0OOOO00 )#line:396
|
|
264
|
+
lz_log (O00O00O0OOOOOOOOO )#line:397
|
|
265
|
+
if O00O00O0OOOOOOOOO ==False :#line:398
|
|
266
266
|
lz_error (4 )#line:399
|
|
267
267
|
return #line:400
|
|
268
268
|
processing (".")#line:404
|
|
269
269
|
lz_log (5 )#line:405
|
|
270
|
-
|
|
271
|
-
lz_log (
|
|
272
|
-
if
|
|
270
|
+
O00O00O0OOOOOOOOO =map_source_code (OOOOO0O0OO0OOOO00 ,OOOO0000O0OOOO0OO ,OO0OOOOOO0O000OO0 [0 ])#line:406
|
|
271
|
+
lz_log (O00O00O0OOOOOOOOO )#line:407
|
|
272
|
+
if O00O00O0OOOOOOOOO ==False :#line:408
|
|
273
273
|
lz_error (5 )#line:409
|
|
274
274
|
return #line:410
|
|
275
275
|
print (".")#line:414
|
|
276
276
|
lz_log (6 )#line:415
|
|
277
|
-
|
|
278
|
-
lz_log (
|
|
279
|
-
if
|
|
277
|
+
O00O00O0OOOOOOOOO =adjustStackFrame (O0000O0OO0OO00O00 )#line:416
|
|
278
|
+
lz_log (O00O00O0OOOOOOOOO )#line:417
|
|
279
|
+
if O00O00O0OOOOOOOOO ==False :#line:418
|
|
280
280
|
lz_error (6 )#line:419
|
|
281
281
|
return #line:420
|
|
282
|
-
def
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
282
|
+
def process (OOO00O00OOO0000O0 ,OO0OOOO0OOO00OO00 ):#line:423
|
|
283
|
+
O0000OOO0OO000O0O =r'''
|
|
284
|
+
@import <dlfcn.h>;
|
|
285
|
+
@import <objc/runtime.h>;
|
|
286
|
+
@import Foundation;
|
|
287
|
+
unsigned int count;
|
|
288
|
+
const char **classes;
|
|
289
|
+
Dl_info info;
|
|
290
|
+
|
|
291
|
+
void *_mh_execute_header = __builtin_return_address(0);
|
|
292
|
+
dladdr(_mh_execute_header, &info);
|
|
293
|
+
classes = (const char **)objc_copyClassNamesForImage(info.dli_fname, &count);
|
|
294
|
+
|
|
295
|
+
NSInteger level = 0;//继承层级
|
|
296
|
+
NSInteger backLevel = 0;//继承层级
|
|
297
|
+
NSMutableDictionary * visited_class = [[NSMutableDictionary alloc]init];
|
|
298
|
+
NSMutableArray * class_stack = [[NSMutableArray alloc] init];
|
|
299
|
+
[class_stack addObject:@"'''+OO0OOOO0OOO00OO00 +'''"];
|
|
300
|
+
BOOL isPrint = NO;
|
|
301
|
+
printf("\\n");
|
|
302
|
+
while (true) {
|
|
303
|
+
|
|
304
|
+
NSString * current_class = [class_stack firstObject];
|
|
305
|
+
|
|
306
|
+
if (current_class) {
|
|
307
|
+
if((BOOL)[[visited_class objectForKey:current_class] boolValue] == YES ) {
|
|
308
|
+
|
|
309
|
+
BOOL hasNewClass = NO;
|
|
310
|
+
for (int i = 0; i < count; i++) {
|
|
311
|
+
|
|
312
|
+
NSString *className = [NSString stringWithCString:classes[i] encoding:NSUTF8StringEncoding];
|
|
313
|
+
NSString *superName = (NSString*)NSStringFromClass((Class)class_getSuperclass(NSClassFromString(className)));
|
|
314
|
+
|
|
315
|
+
if ([superName isEqualToString:current_class] && (BOOL)[[visited_class objectForKey:className] boolValue] == NO) {
|
|
316
|
+
[class_stack insertObject:className atIndex:0];
|
|
317
|
+
hasNewClass = YES;
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
if (hasNewClass == YES) {
|
|
322
|
+
level += 1;
|
|
323
|
+
} else {
|
|
324
|
+
[class_stack removeObjectAtIndex:0];
|
|
325
|
+
level -= 1;
|
|
326
|
+
backLevel += 1;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
} else {
|
|
330
|
+
|
|
331
|
+
NSMutableString * separationSpace = [[NSMutableString alloc]init];
|
|
332
|
+
for (int i = 0; i < level; ++i) {
|
|
333
|
+
[separationSpace appendString:@" |"];
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
NSMutableString * backLevelSpace = [[NSMutableString alloc]init];
|
|
337
|
+
for (int i = 0; i < backLevel-1; ++i) {
|
|
338
|
+
[backLevelSpace appendString:@" |"];
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
backLevel = 0;
|
|
342
|
+
|
|
343
|
+
if (isPrint == YES) {
|
|
344
|
+
printf("|%s%s\\n",(char *)[[separationSpace copy] UTF8String],(char *)[[backLevelSpace copy] UTF8String]);
|
|
345
|
+
}
|
|
346
|
+
NSString * temp = (NSString*)NSStringFromClass((Class)class_getSuperclass(NSClassFromString(current_class)));
|
|
347
|
+
if (temp.length > 0) {
|
|
348
|
+
printf("|%s----%s : %s (L%s) \\n",(char *)[[separationSpace copy] UTF8String],(char *)[current_class UTF8String],(char *)[temp UTF8String],(char *)[[NSString stringWithFormat:@"%ld",(long)level] UTF8String]);
|
|
349
|
+
} else {
|
|
350
|
+
printf("|----%s (L%s) \\n",(char *)[current_class UTF8String],(char *)[[NSString stringWithFormat:@"%ld",(long)level] UTF8String]);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
isPrint = YES;
|
|
354
|
+
[visited_class setObject:@1 forKey:current_class];
|
|
355
|
+
}
|
|
356
|
+
} else {
|
|
357
|
+
break;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
'''#line:501
|
|
361
|
+
O00OOOOO00OO00OO0 =OOO00O00OOO0000O0 .GetCommandInterpreter ()#line:503
|
|
362
|
+
O000OOOOOO00O000O =lldb .SBCommandReturnObject ()#line:504
|
|
363
|
+
O00OOOOO00OO00OO0 .HandleCommand ('expression -lobjc -O -- '+O0000OOO0OO000O0O ,O000OOOOOO00O000O )#line:506
|
|
364
|
+
OOOOOOO0000O0000O =O000OOOOOO00O000O .GetOutput ()#line:507
|
|
365
|
+
O0O00O0OO0O0000OO =re .search ('error',OOOOOOO0000O0000O )#line:508
|
|
366
|
+
print (O000OOOOOO00O000O .GetError ())#line:509
|
|
367
|
+
def help ():#line:511
|
|
368
|
+
print ("Usage:")#line:513
|
|
369
|
+
print (" isource memory_address eg:isource 0x8badf00d")#line:514
|
|
370
|
+
print ("")#line:515
|
|
371
|
+
print (" isource class_name eg:isource QYVideoViewControllerV3")#line:516
|
|
372
|
+
print ("")#line:517
|
|
373
|
+
print ("Commands:")#line:519
|
|
374
|
+
print (" + help command help")#line:520
|
|
375
|
+
print (" + clean clean cache")#line:521
|
|
376
|
+
pass #line:522
|
|
377
|
+
def helloworld (O00OOO0OO00OO00OO ,OOOOOOO0OO000O000 ,O000O0O0OO0O00O00 ,OOO0O0O0OO00O0OO0 ):#line:525
|
|
378
|
+
if OOOOOOO0OO000O000 ==''or OOOOOOO0OO000O000 =='-h':#line:527
|
|
379
|
+
help ()#line:528
|
|
380
|
+
elif OOOOOOO0OO000O000 =='-c':#line:529
|
|
381
|
+
clean (source_code_dir )#line:530
|
|
382
|
+
elif re .match ('0x.*[a-z0-9]',OOOOOOO0OO000O000 )!=None :#line:531
|
|
383
|
+
start (O00OOO0OO00OO00OO ,OOOOOOO0OO000O000 )#line:532
|
|
384
|
+
elif re .match ('.*[a-z0-9]',OOOOOOO0OO000O000 )!=None :#line:533
|
|
385
|
+
process (O00OOO0OO00OO00OO ,OOOOOOO0OO000O000 )#line:534
|
|
386
|
+
else :#line:535
|
|
387
|
+
print ('error: '+OOOOOOO0OO000O000 +' is not a valid command.')#line:536
|
|
388
|
+
help ()#line:537
|
|
389
|
+
def __O0OO000OO0O00O0OO (O000OOOO0O0OO0O00 ,OOOOO00OO00OOOO00 ):#line:540
|
|
390
|
+
manage_source_dir ()#line:542
|
|
391
|
+
manage_job_inis ()#line:546
|
|
392
|
+
O000OOOO0O0OO0O00 .HandleCommand ("command script add -f isource_lldb.helloworld isource")#line:548
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: isource_lldb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ningyuan
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-06-
|
|
11
|
+
date: 2021-06-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: An plugin of LLDB.
|
|
14
14
|
email:
|