isource_lldb 0.3.1 → 0.3.8
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 +390 -299
- 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: a85c016ab6d4dbdd844c5786e1d67324d59cac81419515c3262519d8e1ad64d9
|
|
4
|
+
data.tar.gz: 8981a08b8dd6d3ab223a8825c143ccd1ebc6fe1ad17a1f4d9ac29dbb79ce577b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a7f5901a8a51520f049560096e300a9b672dd56513c1e9b685adc9d838ce8a92d47da257f493c14892d95075155c4564189d49145b11504adeb75629b3232a70
|
|
7
|
+
data.tar.gz: c36a8a8e171f5d68c9b012c8348060cddceb6ec41408853335d37bfd40348a85f4bc5f806602bcdf9ea30949c8b203a2fae49b7b25df32f8b39385df7ee14d0c
|
data/lib/setup
CHANGED
|
@@ -1,301 +1,392 @@
|
|
|
1
1
|
# !/usr/bin/env python3
|
|
2
|
-
import lldb #line:5
|
|
3
|
-
import os #line:6
|
|
4
|
-
import re #line:7
|
|
5
|
-
import time #line:8
|
|
6
|
-
import datetime #line:9
|
|
7
|
-
import queue #line:10
|
|
8
|
-
import shutil #line:11
|
|
9
|
-
import threading #line:12
|
|
10
|
-
import sys #line:13
|
|
11
|
-
from threading import Thread #line:14
|
|
12
|
-
user_dir =os .path .expanduser ('~')#line:16
|
|
13
|
-
source_lldb_dir =user_dir +"/.isource_lldb"#line:17
|
|
14
|
-
source_code_dir =source_lldb_dir +"/source_code"#line:18
|
|
15
|
-
drrr_job_inis_dir =source_lldb_dir +"/drrr_job_inis"#line:19
|
|
16
|
-
drrr_job_inis_dir_modules =drrr_job_inis_dir +"/modules"#line:20
|
|
17
|
-
drrr_job_inis_addr ='ssh://git@gitlab.qiyi.domain:10022/qytools/drrr_job_inis.git'#line:21
|
|
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 (
|
|
22
|
-
pass #line:30
|
|
23
|
-
def manage_source_dir ():#line:33
|
|
24
|
-
|
|
25
|
-
if not
|
|
26
|
-
os .makedirs (source_lldb_dir )#line:36
|
|
27
|
-
os .makedirs (source_code_dir )#line:37
|
|
28
|
-
else :#line:38
|
|
29
|
-
|
|
30
|
-
if not
|
|
31
|
-
os .makedirs (source_code_dir )#line:41
|
|
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
|
-
|
|
54
|
-
break #line:68
|
|
55
|
-
return
|
|
56
|
-
def manage_job_inis ():#line:72
|
|
57
|
-
|
|
58
|
-
if
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if
|
|
64
|
-
lz_error (0 )#line:80
|
|
65
|
-
else :#line:81
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if
|
|
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
|
-
|
|
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
|
-
|
|
119
|
-
break #line:156
|
|
120
|
-
if
|
|
121
|
-
break #line:158
|
|
122
|
-
if
|
|
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
|
|
135
|
-
return ""#line:194
|
|
136
|
-
else :#line:195
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if
|
|
142
|
-
return ""#line:201
|
|
143
|
-
return
|
|
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
|
|
184
|
-
return False #line:257
|
|
185
|
-
else :#line:258
|
|
186
|
-
return True #line:259
|
|
187
|
-
def checkError (
|
|
188
|
-
|
|
189
|
-
if
|
|
190
|
-
return True #line:264
|
|
191
|
-
else :#line:265
|
|
192
|
-
return False #line:266
|
|
193
|
-
def map_source_code (
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
if
|
|
202
|
-
return True #line:278
|
|
203
|
-
else :#line:279
|
|
204
|
-
return False #line:280
|
|
205
|
-
def thread_step_inst (
|
|
206
|
-
pass #line:284
|
|
207
|
-
def adjustStackFrame (
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
if
|
|
217
|
-
return False #line:315
|
|
218
|
-
time .sleep (0.
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
lz_log (
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
lz_log (
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
lz_log (
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
lz_log (
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
lz_log (
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
lz_log (
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
else :#line:441:else:
|
|
295
|
-
print ('error: '+OOO0OOO0O0O0OO0O0 +' is not a valid command.')#line:442:print('error: ' + command +' is not a valid command.')
|
|
296
|
-
help ()#line:443:help()
|
|
297
|
-
def __O0O000O0OOOO0O0O0 (O000O0OO0OOOOOOO0 ,O00OOO00OO000O0OO ):#line:446:def __lldb_init_module(debugger, internal_dict):
|
|
298
|
-
manage_source_dir ()#line:448:manage_source_dir()
|
|
299
|
-
manage_job_inis ()#line:452:manage_job_inis()
|
|
300
|
-
O000O0OO0OOOOOOO0 .HandleCommand ("command script add -f isource_lldb.helloworld isource")#line:454:debugger.HandleCommand("command script add -f isource_lldb.helloworld isource")
|
|
2
|
+
import lldb #line:5
|
|
3
|
+
import os #line:6
|
|
4
|
+
import re #line:7
|
|
5
|
+
import time #line:8
|
|
6
|
+
import datetime #line:9
|
|
7
|
+
import queue #line:10
|
|
8
|
+
import shutil #line:11
|
|
9
|
+
import threading #line:12
|
|
10
|
+
import sys #line:13
|
|
11
|
+
from threading import Thread #line:14
|
|
12
|
+
user_dir =os .path .expanduser ('~')#line:16
|
|
13
|
+
source_lldb_dir =user_dir +"/.isource_lldb"#line:17
|
|
14
|
+
source_code_dir =source_lldb_dir +"/source_code"#line:18
|
|
15
|
+
drrr_job_inis_dir =source_lldb_dir +"/drrr_job_inis"#line:19
|
|
16
|
+
drrr_job_inis_dir_modules =drrr_job_inis_dir +"/modules"#line:20
|
|
17
|
+
drrr_job_inis_addr ='ssh://git@gitlab.qiyi.domain:10022/qytools/drrr_job_inis.git'#line:21
|
|
18
|
+
project_info_cache =source_lldb_dir +"/project_info_cache.txt"#line:22
|
|
19
|
+
def lz_error (O0OO000O000000O00 ):#line:24
|
|
20
|
+
print ("internal error code : "+str (O0OO000O000000O00 ))#line:25
|
|
21
|
+
def lz_log (OO00O000O0OO0OOOO ):#line:27
|
|
22
|
+
pass #line:30
|
|
23
|
+
def manage_source_dir ():#line:33
|
|
24
|
+
OOO0OO00OOOO0OO0O =os .path .exists (source_lldb_dir )#line:34
|
|
25
|
+
if not OOO0OO00OOOO0OO0O :#line:35
|
|
26
|
+
os .makedirs (source_lldb_dir )#line:36
|
|
27
|
+
os .makedirs (source_code_dir )#line:37
|
|
28
|
+
else :#line:38
|
|
29
|
+
O00O00000O00OO0OO =os .path .exists (source_code_dir )#line:39
|
|
30
|
+
if not O00O00000O00OO0OO :#line:40
|
|
31
|
+
os .makedirs (source_code_dir )#line:41
|
|
32
|
+
def create_cache_file ():#line:44
|
|
33
|
+
O00000000000OO0O0 =os .path .exists (project_info_cache )#line:45
|
|
34
|
+
if not O00000000000OO0O0 :#line:46
|
|
35
|
+
O0OOOO0OOO00O000O =open (project_info_cache ,'w')#line:47
|
|
36
|
+
O0OOOO0OOO00O000O .close ()#line:48
|
|
37
|
+
def write_cache_file (O0O0OOO0OO0O000OO ):#line:50
|
|
38
|
+
if O0O0OOO0OO0O000OO [0 ]!=None and O0O0OOO0OO0O000OO [1 ]!=None and O0O0OOO0OO0O000OO [2 ]!=None and O0O0OOO0OO0O000OO [3 ]!=None :#line:51
|
|
39
|
+
OOOO0OOO000O000OO =list (O0O0OOO0OO0O000OO )#line:52
|
|
40
|
+
O000000O0O0OO000O ='---'.join (OOOO0OOO000O000OO )#line:53
|
|
41
|
+
OO0000O0OO0O0O0OO =open (project_info_cache ,'a+')#line:54
|
|
42
|
+
OO0000O0OO0O0O0OO .write (O000000O0O0OO000O +"\n")#line:55
|
|
43
|
+
OO0000O0OO0O0O0OO .close ()#line:56
|
|
44
|
+
def read_cache_file (O0O00O0O0000O0OOO ):#line:58
|
|
45
|
+
OOOO0000O0OOO0OOO =None #line:59
|
|
46
|
+
with open (project_info_cache ,'r',encoding ='utf-8')as O0O000OO0OO0O0OOO :#line:60
|
|
47
|
+
O0O000O00OO0000OO =O0O000OO0OO0O0OOO .readlines ()#line:61
|
|
48
|
+
for O00OO00O00OO0O0O0 in range (0 ,len (O0O000O00OO0000OO )):#line:62
|
|
49
|
+
O00OOO0O000OO0000 =re .search (O0O00O0O0000O0OOO ,O0O000O00OO0000OO [O00OO00O00OO0O0O0 ])#line:63
|
|
50
|
+
if O00OOO0O000OO0000 !=None :#line:64
|
|
51
|
+
O0OO00OOO00O0O0O0 =O0O000O00OO0000OO [O00OO00O00OO0O0O0 ]#line:65
|
|
52
|
+
O00O00OO0OO00O000 =O0OO00OOO00O0O0O0 .split ('---')#line:66
|
|
53
|
+
OOOO0000O0OOO0OOO =tuple (O00O00OO0OO00O000 )#line:67
|
|
54
|
+
break #line:68
|
|
55
|
+
return OOOO0000O0OOO0OOO #line:69
|
|
56
|
+
def manage_job_inis ():#line:72
|
|
57
|
+
O000O00OOOO0O000O =os .path .exists (drrr_job_inis_dir )#line:73
|
|
58
|
+
if O000O00OOOO0O000O ==True :#line:74
|
|
59
|
+
O0OOO0O0OOOO0O000 ="cd "+drrr_job_inis_dir +"; git pull"#line:75
|
|
60
|
+
O000OOO00O00O0O0O =os .popen (O0OOO0O0OOOO0O000 )#line:76
|
|
61
|
+
OO000O00O0O0000O0 =O000OOO00O00O0O0O .read ()#line:77
|
|
62
|
+
O0OO000O000O0O0OO =re .search ("fatal",OO000O00O0O0000O0 )#line:78
|
|
63
|
+
if O0OO000O000O0O0OO !=None :#line:79
|
|
64
|
+
lz_error (0 )#line:80
|
|
65
|
+
else :#line:81
|
|
66
|
+
O0O0OOO0O000OO000 ="git clone "+drrr_job_inis_addr +" "+drrr_job_inis_dir #line:82
|
|
67
|
+
O000OOO00O00O0O0O =os .popen (O0O0OOO0O000OO000 )#line:83
|
|
68
|
+
OO000O00O0O0000O0 =O000OOO00O00O0O0O .read ()#line:84
|
|
69
|
+
O0OO000O000O0O0OO =re .search ("fatal",OO000O00O0O0000O0 )#line:85
|
|
70
|
+
if O0OO000O000O0O0OO !=None :#line:86
|
|
71
|
+
lz_error (0 )#line:87
|
|
72
|
+
def get_debug_file_path (O0O0O0O00OOOOOO00 ):#line:90
|
|
73
|
+
OO00OO00O00OOO0O0 =lldb .debugger .GetCommandInterpreter ()#line:91
|
|
74
|
+
O0OO0O0OOOO000OOO =lldb .SBCommandReturnObject ()#line:92
|
|
75
|
+
OO00OO00O00OOO0O0 .HandleCommand ('image lookup -v --address '+O0O0O0O00OOOOOO00 ,O0OO0O0OOOO000OOO )#line:93
|
|
76
|
+
OOO00OO00OOO0OO00 =O0OO0O0OOOO000OOO .GetOutput ()#line:94
|
|
77
|
+
OOOO0O0O0OO0000O0 =""#line:96
|
|
78
|
+
O0O00O0OO00O000O0 =re .search ('error',OOO00OO00OOO0OO00 )#line:97
|
|
79
|
+
if O0O00O0OO00O000O0 !=None :#line:98
|
|
80
|
+
return OOOO0O0O0OO0000O0 #line:99
|
|
81
|
+
OO00O00OOO00OO000 =OOO00OO00OOO0OO00 .split ("\n")#line:102
|
|
82
|
+
if len (OO00O00OOO00OO000 )>3 :#line:103
|
|
83
|
+
OOOOO00000OO00000 =OO00O00OOO00OO000 [3 ].strip ()#line:104
|
|
84
|
+
O0O0O0O00O0OOO0OO =OOOOO00000OO00000 .split (",")#line:106
|
|
85
|
+
if len (O0O0O0O00O0OOO0OO )>1 :#line:107
|
|
86
|
+
OO0O00OO00000O000 =O0O0O0O00O0OOO0OO [1 ].strip ()#line:108
|
|
87
|
+
OOOOO0000000000OO =OO0O00OO00000O000 .split ("=")#line:110
|
|
88
|
+
if len (OOOOO0000000000OO )>1 :#line:111
|
|
89
|
+
OO0OOO0O000OO00OO =OOOOO0000000000OO [1 ].strip ()#line:112
|
|
90
|
+
OOOO0O0O0OO0000O0 =OO0OOO0O000OO00OO .replace ('\"','')#line:114
|
|
91
|
+
return OOOO0O0O0OO0000O0 #line:116
|
|
92
|
+
def get_inis_info (OOOOOOO00O0O00OO0 ):#line:119
|
|
93
|
+
O0O00OO00OO0OOO0O =None #line:121
|
|
94
|
+
O0000O00O000O0O0O =None #line:122
|
|
95
|
+
O00000O00O0O000O0 =None #line:123
|
|
96
|
+
O0OO00000000O00O0 =None #line:124
|
|
97
|
+
O0000OOO0O00OOO00 =OOOOOOO00O0O00OO0 .split ("/")#line:127
|
|
98
|
+
for O00OO00000OO00000 in range (0 ,len (O0000OOO0O00OOO00 )):#line:128
|
|
99
|
+
if O0000OOO0O00OOO00 [O00OO00000OO00000 ]=="MODULE_DIR":#line:129
|
|
100
|
+
O0000O00O000O0O0O =O0000OOO0O00OOO00 [O00OO00000OO00000 +1 ]#line:130
|
|
101
|
+
O0O00OO00OO0OOO0O =O0000OOO0O00OOO00 [O00OO00000OO00000 +1 ]#line:131
|
|
102
|
+
break #line:132
|
|
103
|
+
if O0000O00O000O0O0O !=None and len (O0000O00O000O0O0O )>0 :#line:139
|
|
104
|
+
OO0O0O000OOO0OOO0 =os .listdir (drrr_job_inis_dir_modules )#line:140
|
|
105
|
+
for O00OO00000OO00000 in range (0 ,len (OO0O0O000OOO0OOO0 )):#line:141
|
|
106
|
+
O00000O0O0OOOO0OO =drrr_job_inis_dir_modules +"/"+OO0O0O000OOO0OOO0 [O00OO00000OO00000 ]#line:142
|
|
107
|
+
with open (O00000O0O0OOOO0OO ,'r',encoding ='utf-8')as OO00000O00000O00O :#line:144
|
|
108
|
+
OOO0O0OOOOOO0OOO0 =OO00000O00000O00O .readlines ()#line:145
|
|
109
|
+
for O00OO00000OO00000 in range (0 ,len (OOO0O0OOOOOO0OOO0 )):#line:146
|
|
110
|
+
O000OO0OO0000O000 =re .search (O0000O00O000O0O0O ,OOO0O0OOOOOO0OOO0 [O00OO00000OO00000 ])#line:147
|
|
111
|
+
if O000OO0OO0000O000 !=None :#line:148
|
|
112
|
+
O00000O00O0O000O0 =OO0O0O000OOO0OOO0 [O00OO00000OO00000 ]#line:149
|
|
113
|
+
OOOO0O00OOOOOOO0O =O00OO00000OO00000 -5 if O00OO00000OO00000 >5 else 0 #line:150
|
|
114
|
+
OO0O0000000O00OOO =O00OO00000OO00000 +5 if O00OO00000OO00000 +5 <len (OOO0O0OOOOOO0OOO0 )else len (OOO0O0OOOOOO0OOO0 )#line:151
|
|
115
|
+
for OOOO0OO00O0O00OO0 in range (OOOO0O00OOOOOOO0O ,OO0O0000000O00OOO ):#line:152
|
|
116
|
+
OOOO0O0OO00O0OO00 =re .findall ("ssh://git@gitlab.qiyi.domain:[^/]+?/.*?"+O0O00OO00OO0OOO0O +"*?[^0~9]?.git",OOO0O0OOOOOO0OOO0 [OOOO0OO00O0O00OO0 ])#line:153
|
|
117
|
+
if len (OOOO0O0OO00O0OO00 )>0 :#line:154
|
|
118
|
+
O0OO00000000O00O0 =OOOO0O0OO00O0OO00 [0 ]#line:155
|
|
119
|
+
break #line:156
|
|
120
|
+
if O0OO00000000O00O0 !=None :#line:157
|
|
121
|
+
break #line:158
|
|
122
|
+
if O0OO00000000O00O0 !=None :#line:159
|
|
123
|
+
break #line:160
|
|
124
|
+
return (O0O00OO00OO0OOO0O ,O0OO00000000O00O0 )#line:179
|
|
125
|
+
def download_git_source_code (OOOO0OOOOO0000O0O ,OOOO0OOO0O000OOOO ):#line:183
|
|
126
|
+
OO0O00O0O0O000OOO =source_code_dir +"/"+OOOO0OOOOO0000O0O #line:184
|
|
127
|
+
O0OO0000OOOOOO000 =os .path .exists (OO0O00O0O0O000OOO )#line:185
|
|
128
|
+
if not O0OO0000OOOOOO000 :#line:187
|
|
129
|
+
os .makedirs (OO0O00O0O0O000OOO )#line:188
|
|
130
|
+
OOO0OOO0OOO0O000O ="git clone "+OOOO0OOO0O000OOOO +" "+OO0O00O0O0O000OOO #line:189
|
|
131
|
+
OO000000OOOOOO00O =os .popen (OOO0OOO0OOO0O000O )#line:190
|
|
132
|
+
OOOOO00OO00OOO00O =OO000000OOOOOO00O .read ()#line:191
|
|
133
|
+
OOOO00000OOO0O000 =re .search ("fatal",OOOOO00OO00OOO00O )#line:192
|
|
134
|
+
if OOOO00000OOO0O000 !=None :#line:193
|
|
135
|
+
return ""#line:194
|
|
136
|
+
else :#line:195
|
|
137
|
+
O0O00OO00OO0O000O ="cd "+OO0O00O0O0O000OOO +"; git pull"#line:196
|
|
138
|
+
OO000000OOOOOO00O =os .popen (O0O00OO00OO0O000O )#line:197
|
|
139
|
+
OOOOO00OO00OOO00O =OO000000OOOOOO00O .read ()#line:198
|
|
140
|
+
OOOO00000OOO0O000 =re .search ("fatal",OOOOO00OO00OOO00O )#line:199
|
|
141
|
+
if OOOO00000OOO0O000 !=None :#line:200
|
|
142
|
+
return ""#line:201
|
|
143
|
+
return OO0O00O0O0O000OOO #line:203
|
|
144
|
+
def get_update_time ():#line:206
|
|
145
|
+
O0000000O0OOOO0OO =user_dir +"/.cocoapods/repos/qiyi-podspecs/"#line:208
|
|
146
|
+
OO0O0O0O000000O00 =os .path .getmtime (O0000000O0OOOO0OO )#line:209
|
|
147
|
+
O00O0000OO0OO0O00 =time .localtime (OO0O0O0O000000O00 )#line:210
|
|
148
|
+
OOO0OO00O00O000OO =time .strftime ("%m %d %H:%M:%S %Y",O00O0000OO0OO0O00 )#line:213
|
|
149
|
+
OO00OO0O00OOO00O0 =OOO0OO00O00O000OO .split (" ")#line:214
|
|
150
|
+
OOO0O0O0O000O00O0 =OO00OO0O00OOO00O0 [0 ]#line:215
|
|
151
|
+
if OOO0O0O0O000O00O0 =='1':#line:217
|
|
152
|
+
OOO0O0O0O000O00O0 ='Jan'#line:218
|
|
153
|
+
if OOO0O0O0O000O00O0 =='2':#line:219
|
|
154
|
+
OOO0O0O0O000O00O0 ='Feb'#line:220
|
|
155
|
+
if OOO0O0O0O000O00O0 =='3':#line:221
|
|
156
|
+
OOO0O0O0O000O00O0 ='Mar'#line:222
|
|
157
|
+
if OOO0O0O0O000O00O0 =='4':#line:223
|
|
158
|
+
OOO0O0O0O000O00O0 ='Apr'#line:224
|
|
159
|
+
if OOO0O0O0O000O00O0 =='5':#line:225
|
|
160
|
+
OOO0O0O0O000O00O0 ='May'#line:226
|
|
161
|
+
if OOO0O0O0O000O00O0 =='6':#line:227
|
|
162
|
+
OOO0O0O0O000O00O0 ='Jun'#line:228
|
|
163
|
+
if OOO0O0O0O000O00O0 =='7':#line:229
|
|
164
|
+
OOO0O0O0O000O00O0 ='Jul'#line:230
|
|
165
|
+
if OOO0O0O0O000O00O0 =='8':#line:231
|
|
166
|
+
OOO0O0O0O000O00O0 ='Aug'#line:232
|
|
167
|
+
if OOO0O0O0O000O00O0 =='9':#line:233
|
|
168
|
+
OOO0O0O0O000O00O0 ='Sep'#line:234
|
|
169
|
+
if OOO0O0O0O000O00O0 =='10':#line:235
|
|
170
|
+
OOO0O0O0O000O00O0 ='Oct'#line:236
|
|
171
|
+
if OOO0O0O0O000O00O0 =='11':#line:237
|
|
172
|
+
OOO0O0O0O000O00O0 ='Nov'#line:238
|
|
173
|
+
if OOO0O0O0O000O00O0 =='12':#line:239
|
|
174
|
+
OOO0O0O0O000O00O0 ='Dec'#line:240
|
|
175
|
+
OO00OO0O00OOO00O0 [0 ]=OOO0O0O0O000O00O0 #line:242
|
|
176
|
+
return ' '.join (OO00OO0O00OOO00O0 )#line:244
|
|
177
|
+
def change_source_code_commit (O0000OOO0O000O000 ):#line:247
|
|
178
|
+
OOO0OO00OOO0O0OO0 =get_update_time ()#line:250
|
|
179
|
+
OO00000O0OO000OOO ="cd "+O0000OOO0O000O000 +"; git rev-list -n 1 --before=\""+OOO0OO00OOO0O0OO0 +"\" master"#line:252
|
|
180
|
+
OO0OOO0OOOOO0OOOO =os .popen (OO00000O0OO000OOO )#line:253
|
|
181
|
+
OO0OOO0O0OOOO0000 =OO0OOO0OOOOO0OOOO .read ()#line:254
|
|
182
|
+
OO00OOO0OO0O0OO0O =re .search ("fatal",OO0OOO0O0OOOO0000 )#line:255
|
|
183
|
+
if OO00OOO0OO0O0OO0O !=None :#line:256
|
|
184
|
+
return False #line:257
|
|
185
|
+
else :#line:258
|
|
186
|
+
return True #line:259
|
|
187
|
+
def checkError (O00OOOOO0O0O0O0OO ,OO0O00O0OOO0O00O0 ):#line:261
|
|
188
|
+
OOOOOOO0OOOO00000 =re .search (OO0O00O0OOO0O00O0 ,O00OOOOO0O0O0O0OO )#line:262
|
|
189
|
+
if OOOOOOO0OOOO00000 ==None :#line:263
|
|
190
|
+
return True #line:264
|
|
191
|
+
else :#line:265
|
|
192
|
+
return False #line:266
|
|
193
|
+
def map_source_code (OOOO00O0O00OO0O00 ,O0O0OOOO0OOO0O000 ,O0O0OO0OOOOOOOOOO ):#line:269
|
|
194
|
+
O0OOO0O00O0OO0O00 =O0O0OOOO0OOO0O000 .split (O0O0OO0OOOOOOOOOO )#line:270
|
|
195
|
+
OOOOOOO000000O000 =O0OOO0O00O0OO0O00 [0 ]#line:271
|
|
196
|
+
O00OO00OO0O0OO0OO =lldb .debugger .GetCommandInterpreter ()#line:272
|
|
197
|
+
OO0O0OOOO000OOOOO =lldb .SBCommandReturnObject ()#line:273
|
|
198
|
+
O00OO00OO0O0OO0OO .HandleCommand ("settings append target.source-map "+OOOOOOO000000O000 +" "+OOOO00O0O00OO0O00 ,OO0O0OOOO000OOOOO )#line:274
|
|
199
|
+
OO0OO0OOO0000OO0O =OO0O0OOOO000OOOOO .GetOutput ()#line:275
|
|
200
|
+
O00O0OO0000OO0OOO =re .search ('error',OO0OO0OOO0000OO0O )#line:276
|
|
201
|
+
if O00O0OO0000OO0OOO ==None :#line:277
|
|
202
|
+
return True #line:278
|
|
203
|
+
else :#line:279
|
|
204
|
+
return False #line:280
|
|
205
|
+
def thread_step_inst (O0OOO0O000OO0OO00 ):#line:283
|
|
206
|
+
pass #line:284
|
|
207
|
+
def adjustStackFrame (O0O0O00O0OOOO0O00 ):#line:287
|
|
208
|
+
O0O0O00O0OOOO0O00 .SetAsync (True )#line:298
|
|
209
|
+
OO0O0O000OO0000OO =O0O0O00O0OOOO0O00 .GetSelectedTarget ().GetProcess ().GetSelectedThread ()#line:303
|
|
210
|
+
O0OOOO0O0O0000O0O =OO0O0O000OO0000OO .GetSelectedFrame ().GetFrameID ()#line:304
|
|
211
|
+
O00000O0OO0OO0000 =lldb .debugger .GetCommandInterpreter ()#line:306
|
|
212
|
+
OO0OOO0OO0O0O00OO =lldb .SBCommandReturnObject ()#line:307
|
|
213
|
+
O00000O0OO0OO0000 .HandleCommand ("thread step-inst",OO0OOO0OO0O0O00OO )#line:311
|
|
214
|
+
OO0OO0O0OO00O00OO =OO0OOO0OO0O0O00OO .GetOutput ()#line:312
|
|
215
|
+
O0O0O00000000O0OO =re .search ('error',OO0OO0O0OO00O00OO )#line:313
|
|
216
|
+
if O0O0O00000000O0OO !=None :#line:314
|
|
217
|
+
return False #line:315
|
|
218
|
+
time .sleep (0.2 )#line:316
|
|
219
|
+
O00000O0OO0OO0000 .HandleCommand ("thread step-over",OO0OOO0OO0O0O00OO )#line:317
|
|
220
|
+
time .sleep (0.5 )#line:318
|
|
221
|
+
O00000O0OO0OO0000 .HandleCommand ("frame select "+str (O0OOOO0O0O0000O0O ),OO0OOO0OO0O0O00OO )#line:327
|
|
222
|
+
OO0OO0O0OO00O00OO =OO0OOO0OO0O0O00OO .GetOutput ()#line:328
|
|
223
|
+
O0O0O00000000O0OO =re .search ('error',OO0OO0O0OO00O00OO )#line:329
|
|
224
|
+
if O0O0O00000000O0OO !=None :#line:331
|
|
225
|
+
return False #line:332
|
|
226
|
+
def clean (OO0O0O00O0O00000O ):#line:334
|
|
227
|
+
OOO000OOO00OOO0OO =os .listdir (OO0O0O00O0O00000O )#line:335
|
|
228
|
+
for O0O0O0OO0000OOO0O in OOO000OOO00OOO0OO :#line:336
|
|
229
|
+
O0O00O000O0OOO00O =os .path .join (OO0O0O00O0O00000O ,O0O0O0OO0000OOO0O )#line:337
|
|
230
|
+
if os .path .isfile (O0O00O000O0OOO00O ):#line:338
|
|
231
|
+
os .remove (O0O00O000O0OOO00O )#line:339
|
|
232
|
+
elif os .path .isdir (O0O00O000O0OOO00O ):#line:340
|
|
233
|
+
shutil .rmtree (O0O00O000O0OOO00O )#line:341
|
|
234
|
+
pass #line:342
|
|
235
|
+
def processing (O0OOO000O0O0000O0 ):#line:352
|
|
236
|
+
sys .stdout .write (O0OOO000O0O0000O0 )#line:353
|
|
237
|
+
sys .stdout .flush ()#line:354
|
|
238
|
+
def start (OO0OO000O0OO0OO0O ,O0O0O00O00O000000 ):#line:356
|
|
239
|
+
processing ("processing")#line:358
|
|
240
|
+
processing (".")#line:361
|
|
241
|
+
lz_log (1 )#line:364
|
|
242
|
+
OOOO00000000OO0O0 =get_debug_file_path (O0O0O00O00O000000 )#line:365
|
|
243
|
+
lz_log (OOOO00000000OO0O0 )#line:366
|
|
244
|
+
if OOOO00000000OO0O0 ==None or len (OOOO00000000OO0O0 )==0 :#line:367
|
|
245
|
+
lz_error (1 )#line:368
|
|
246
|
+
return #line:369
|
|
247
|
+
processing (".")#line:374
|
|
248
|
+
lz_log (2 )#line:375
|
|
249
|
+
OOO000O0O000000OO =get_inis_info (OOOO00000000OO0O0 )#line:376
|
|
250
|
+
lz_log (OOO000O0O000000OO )#line:377
|
|
251
|
+
if OOO000O0O000000OO [0 ]==None or OOO000O0O000000OO [1 ]==None :#line:378
|
|
252
|
+
lz_error (2 )#line:379
|
|
253
|
+
return #line:380
|
|
254
|
+
processing (".")#line:384
|
|
255
|
+
lz_log (3 )#line:385
|
|
256
|
+
O0O00O0O0000OOOOO =download_git_source_code (OOO000O0O000000OO [0 ],OOO000O0O000000OO [1 ])#line:386
|
|
257
|
+
lz_log (O0O00O0O0000OOOOO )#line:387
|
|
258
|
+
if O0O00O0O0000OOOOO ==None or len (O0O00O0O0000OOOOO )==0 :#line:388
|
|
259
|
+
lz_error (3 )#line:389
|
|
260
|
+
return #line:390
|
|
261
|
+
processing (".")#line:394
|
|
262
|
+
lz_log (4 )#line:395
|
|
263
|
+
O00OO0O0OO0OOO00O =change_source_code_commit (O0O00O0O0000OOOOO )#line:396
|
|
264
|
+
lz_log (O00OO0O0OO0OOO00O )#line:397
|
|
265
|
+
if O00OO0O0OO0OOO00O ==False :#line:398
|
|
266
|
+
lz_error (4 )#line:399
|
|
267
|
+
return #line:400
|
|
268
|
+
processing (".")#line:404
|
|
269
|
+
lz_log (5 )#line:405
|
|
270
|
+
O00OO0O0OO0OOO00O =map_source_code (O0O00O0O0000OOOOO ,OOOO00000000OO0O0 ,OOO000O0O000000OO [0 ])#line:406
|
|
271
|
+
lz_log (O00OO0O0OO0OOO00O )#line:407
|
|
272
|
+
if O00OO0O0OO0OOO00O ==False :#line:408
|
|
273
|
+
lz_error (5 )#line:409
|
|
274
|
+
return #line:410
|
|
275
|
+
print (".")#line:414
|
|
276
|
+
lz_log (6 )#line:415
|
|
277
|
+
O00OO0O0OO0OOO00O =adjustStackFrame (OO0OO000O0OO0OO0O )#line:416
|
|
278
|
+
lz_log (O00OO0O0OO0OOO00O )#line:417
|
|
279
|
+
if O00OO0O0OO0OOO00O ==False :#line:418
|
|
280
|
+
lz_error (6 )#line:419
|
|
281
|
+
return #line:420
|
|
282
|
+
def process (OOOOO000000OO0000 ,OO0O0O0OOO0O00OO0 ):#line:423
|
|
283
|
+
O0OO000OOOO0O0OO0 =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);
|
|
301
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:@"'''+OO0O0O0OOO0O00OO0 +'''"];
|
|
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
|
+
OOO0OOOOO0O0O00O0 =OOOOO000000OO0000 .GetCommandInterpreter ()#line:503
|
|
362
|
+
OOOO00OO0O00000OO =lldb .SBCommandReturnObject ()#line:504
|
|
363
|
+
OOO0OOOOO0O0O00O0 .HandleCommand ('expression -lobjc -O -- '+O0OO000OOOO0O0OO0 ,OOOO00OO0O00000OO )#line:506
|
|
364
|
+
OO0O0OOOO000O0000 =OOOO00OO0O00000OO .GetOutput ()#line:507
|
|
365
|
+
OOO0OO0O0OO0OOO0O =re .search ('error',OO0O0OOOO000O0000 )#line:508
|
|
366
|
+
print (OOOO00OO0O00000OO .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 NSObject")#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 (OOO0O000O00OOO0O0 ,OOOOO00O0OO0O0OO0 ,O0O0OOOOO0OOO0O00 ,O0OOO0000000OOOOO ):#line:525
|
|
378
|
+
if OOOOO00O0OO0O0OO0 ==''or OOOOO00O0OO0O0OO0 =='-h':#line:527
|
|
379
|
+
help ()#line:528
|
|
380
|
+
elif OOOOO00O0OO0O0OO0 =='-c':#line:529
|
|
381
|
+
clean (source_code_dir )#line:530
|
|
382
|
+
elif re .match ('0x.*[a-z0-9]',OOOOO00O0OO0O0OO0 )!=None :#line:531
|
|
383
|
+
start (OOO0O000O00OOO0O0 ,OOOOO00O0OO0O0OO0 )#line:532
|
|
384
|
+
elif re .match ('.*[a-z0-9]',OOOOO00O0OO0O0OO0 )!=None :#line:533
|
|
385
|
+
process (OOO0O000O00OOO0O0 ,OOOOO00O0OO0O0OO0 )#line:534
|
|
386
|
+
else :#line:535
|
|
387
|
+
print ('error: '+OOOOO00O0OO0O0OO0 +' is not a valid command.')#line:536
|
|
388
|
+
help ()#line:537
|
|
389
|
+
def __OOOOOO0OOOO0O0O00 (O0000OO0OO00O0O0O ,OO0O0O000OOO0OO0O ):#line:540
|
|
390
|
+
manage_source_dir ()#line:542
|
|
391
|
+
manage_job_inis ()#line:546
|
|
392
|
+
O0000OO0OO00O0O0O .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.8
|
|
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-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: An plugin of LLDB.
|
|
14
14
|
email:
|