isource_lldb 0.2.9 → 0.3.6
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/rubygems_plugin.rb +16 -6
- 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: 66b5d9f8d1cac6064b1f2aba3078bbb20cf096713e435b235f76a63ebebafc15
|
|
4
|
+
data.tar.gz: c31e5113a14db1b4cbde2d02f5493bba044994972d2248942c5e73fd6e930d54
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1df12f407995ed78cc8dfb7c45876493546c5f46ede4b0391e7ee552f37c161b2068432a498923821b7fa662389fb3d57113f3284cf5c086cc9eb42bd82a4f20
|
|
7
|
+
data.tar.gz: f7ea8fad9f1c3f618a785642ff69d7f3a732e2df8a3139e1e81b8034dc5e54e772eab36e8296fe118d85bed98d151ff6b286e9e5775881093585ec7c1033b0c5
|
data/lib/rubygems_plugin.rb
CHANGED
|
@@ -7,8 +7,10 @@ Lldb_source_path = File.expand_path('~')+'/.isource_lldb'
|
|
|
7
7
|
Lldb_file_path = File.expand_path('~')+'/.isource_lldb/isource_lldb.py'
|
|
8
8
|
Commond_str = 'command script import '+Lldb_file_path
|
|
9
9
|
|
|
10
|
-
Gem.post_install do
|
|
11
|
-
|
|
10
|
+
Gem.post_install do |installer|
|
|
11
|
+
if installer.spec.name != "isource_lldb"
|
|
12
|
+
return
|
|
13
|
+
end
|
|
12
14
|
# 配置 .lldbinit
|
|
13
15
|
if File.exist?(Lldb_init_path)
|
|
14
16
|
f=File.new(Lldb_init_path,"a+")
|
|
@@ -36,11 +38,15 @@ Gem.post_install do
|
|
|
36
38
|
if !File.exist?(Lldb_source_path)
|
|
37
39
|
Dir.mkdir(Lldb_source_path)
|
|
38
40
|
end
|
|
41
|
+
|
|
39
42
|
File.chmod(0775,Lldb_source_path)
|
|
40
|
-
scriptPath = File.dirname(Pathname.new(__FILE__).realpath)
|
|
41
|
-
File.rename scriptPath+'/setup', Lldb_file_path
|
|
42
|
-
File.chmod(0775,Lldb_file_path)
|
|
43
43
|
|
|
44
|
+
scriptPath = File.dirname(Pathname.new(__FILE__).realpath)
|
|
45
|
+
if File.exist?(scriptPath+'/setup')
|
|
46
|
+
File.rename scriptPath+'/setup', Lldb_file_path
|
|
47
|
+
File.chmod(0775,Lldb_file_path)
|
|
48
|
+
end
|
|
49
|
+
|
|
44
50
|
puts "Please use the isource command in your Xcode LLDB."
|
|
45
51
|
end
|
|
46
52
|
|
|
@@ -74,7 +80,11 @@ def remove_file()
|
|
|
74
80
|
|
|
75
81
|
end
|
|
76
82
|
|
|
77
|
-
Gem.post_uninstall do
|
|
83
|
+
Gem.post_uninstall do |installer|
|
|
84
|
+
if installer.spec.name != "isource_lldb"
|
|
85
|
+
return
|
|
86
|
+
end
|
|
87
|
+
|
|
78
88
|
if File.exist?(Lldb_source_path)
|
|
79
89
|
remove_dir(Lldb_source_path)
|
|
80
90
|
end
|
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 (O00OO000OOOOOOO00 ):#line:24
|
|
20
|
+
print ("internal error code : "+str (O00OO000OOOOOOO00 ))#line:25
|
|
21
|
+
def lz_log (O0OOO000O0OO00O0O ):#line:27
|
|
22
|
+
pass #line:30
|
|
23
|
+
def manage_source_dir ():#line:33
|
|
24
|
+
OOO0OO00OO0O00O0O =os .path .exists (source_lldb_dir )#line:34
|
|
25
|
+
if not OOO0OO00OO0O00O0O :#line:35
|
|
26
|
+
os .makedirs (source_lldb_dir )#line:36
|
|
27
|
+
os .makedirs (source_code_dir )#line:37
|
|
28
|
+
else :#line:38
|
|
29
|
+
OO0OOOO00000OO00O =os .path .exists (source_code_dir )#line:39
|
|
30
|
+
if not OO0OOOO00000OO00O :#line:40
|
|
31
|
+
os .makedirs (source_code_dir )#line:41
|
|
32
|
+
def create_cache_file ():#line:44
|
|
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
|
+
break #line:68
|
|
55
|
+
return OOOO00O00OO0O000O #line:69
|
|
56
|
+
def manage_job_inis ():#line:72
|
|
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
|
+
lz_error (0 )#line:80
|
|
65
|
+
else :#line:81
|
|
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
|
+
lz_error (0 )#line:87
|
|
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
|
+
break #line:132
|
|
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
|
+
break #line:156
|
|
120
|
+
if O000OOO0OO00OOOO0 !=None :#line:157
|
|
121
|
+
break #line:158
|
|
122
|
+
if O000OOO0OO00OOOO0 !=None :#line:159
|
|
123
|
+
break #line:160
|
|
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
|
+
return ""#line:194
|
|
136
|
+
else :#line:195
|
|
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
|
+
return ""#line:201
|
|
143
|
+
return O00OOOO0O0OO0O0O0 #line:203
|
|
144
|
+
def get_update_time ():#line:206
|
|
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
|
+
return False #line:257
|
|
185
|
+
else :#line:258
|
|
186
|
+
return True #line:259
|
|
187
|
+
def checkError (O000000O0OOO0OO00 ,O0O000O00000O000O ):#line:261
|
|
188
|
+
OOO0000OOOO0OOO00 =re .search (O0O000O00000O000O ,O000000O0OOO0OO00 )#line:262
|
|
189
|
+
if OOO0000OOOO0OOO00 ==None :#line:263
|
|
190
|
+
return True #line:264
|
|
191
|
+
else :#line:265
|
|
192
|
+
return False #line:266
|
|
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
|
+
return True #line:278
|
|
203
|
+
else :#line:279
|
|
204
|
+
return False #line:280
|
|
205
|
+
def thread_step_inst (O0OOO0OO00OO000O0 ):#line:283
|
|
206
|
+
pass #line:284
|
|
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
|
+
return False #line:315
|
|
218
|
+
time .sleep (0.2 )#line:316
|
|
219
|
+
O00O0000OOOO0OOO0 .HandleCommand ("thread step-over",O0OOOOOO00O00O0O0 )#line:317
|
|
220
|
+
time .sleep (0.5 )#line:318
|
|
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
|
+
return False #line:332
|
|
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
|
+
pass #line:342
|
|
235
|
+
def processing (O00O0000OO0OO0000 ):#line:352
|
|
236
|
+
sys .stdout .write (O00O0000OO0OO0000 )#line:353
|
|
237
|
+
sys .stdout .flush ()#line:354
|
|
238
|
+
def start (O0000O0OO0OO00O00 ,OO000O00OOOO0O0O0 ):#line:356
|
|
239
|
+
processing ("processing")#line:358
|
|
240
|
+
processing (".")#line:361
|
|
241
|
+
lz_log (1 )#line:364
|
|
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
|
+
lz_error (1 )#line:368
|
|
246
|
+
return #line:369
|
|
247
|
+
processing (".")#line:374
|
|
248
|
+
lz_log (2 )#line:375
|
|
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
|
+
lz_error (2 )#line:379
|
|
253
|
+
return #line:380
|
|
254
|
+
processing (".")#line:384
|
|
255
|
+
lz_log (3 )#line:385
|
|
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
|
+
lz_error (3 )#line:389
|
|
260
|
+
return #line:390
|
|
261
|
+
processing (".")#line:394
|
|
262
|
+
lz_log (4 )#line:395
|
|
263
|
+
O00O00O0OOOOOOOOO =change_source_code_commit (OOOOO0O0OO0OOOO00 )#line:396
|
|
264
|
+
lz_log (O00O00O0OOOOOOOOO )#line:397
|
|
265
|
+
if O00O00O0OOOOOOOOO ==False :#line:398
|
|
266
|
+
lz_error (4 )#line:399
|
|
267
|
+
return #line:400
|
|
268
|
+
processing (".")#line:404
|
|
269
|
+
lz_log (5 )#line:405
|
|
270
|
+
O00O00O0OOOOOOOOO =map_source_code (OOOOO0O0OO0OOOO00 ,OOOO0000O0OOOO0OO ,OO0OOOOOO0O000OO0 [0 ])#line:406
|
|
271
|
+
lz_log (O00O00O0OOOOOOOOO )#line:407
|
|
272
|
+
if O00O00O0OOOOOOOOO ==False :#line:408
|
|
273
|
+
lz_error (5 )#line:409
|
|
274
|
+
return #line:410
|
|
275
|
+
print (".")#line:414
|
|
276
|
+
lz_log (6 )#line:415
|
|
277
|
+
O00O00O0OOOOOOOOO =adjustStackFrame (O0000O0OO0OO00O00 )#line:416
|
|
278
|
+
lz_log (O00O00O0OOOOOOOOO )#line:417
|
|
279
|
+
if O00O00O0OOOOOOOOO ==False :#line:418
|
|
280
|
+
lz_error (6 )#line:419
|
|
281
|
+
return #line:420
|
|
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);
|
|
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:@"'''+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.
|
|
4
|
+
version: 0.3.6
|
|
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:
|