isource_lldb 0.1.0
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 +7 -0
- data/lib/rubygems_plugin.rb +44 -0
- data/lib/setup.i +295 -0
- metadata +45 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 91588e08ebef26200f1ae981deadafa8bd5823b53c1bbef3c47651c9fae88d16
|
|
4
|
+
data.tar.gz: 999e74c5efa57d410d97d72c4b8a790f73d072abd104f926144125b75057fa87
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 37cf8bbe14bee4216eeee88866b301bb8dd788bd17bebc9d34bee0ab09f5feb11b65d00712f75868b0296f518eba798bb7679c7b2f38561f629145b0ecaeca58
|
|
7
|
+
data.tar.gz: 5e787a8130bd72b5dc7fe8145a39392ce30c3d476db68952d0965f648e9b02a0dac8720ea832ca04ceb8bd3b157bc353aad40526ac6b2134150223108b73a8ca
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
|
|
2
|
+
require 'pathname'
|
|
3
|
+
|
|
4
|
+
Lldb_init_path = File.expand_path('~')+'/.lldbinit'
|
|
5
|
+
Lldb_source_path = File.expand_path('~')+'/.isource_lldb'
|
|
6
|
+
Lldb_file_path = File.expand_path('~')+'/.isource_lldb/isource_lldb.py'
|
|
7
|
+
Commond_str = 'command script import '+Lldb_file_path
|
|
8
|
+
|
|
9
|
+
Gem.post_install do
|
|
10
|
+
|
|
11
|
+
# 配置 .lldbinit
|
|
12
|
+
if File.exist?(Lldb_init_path)
|
|
13
|
+
f=File.new(Lldb_init_path,"a+")
|
|
14
|
+
data = f.readlines
|
|
15
|
+
isExist = false
|
|
16
|
+
data.each do |d|
|
|
17
|
+
if d.chomp.include?Commond_str
|
|
18
|
+
isExist = true
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
if isExist == false
|
|
22
|
+
f.puts ''
|
|
23
|
+
f.puts Commond_str
|
|
24
|
+
f.close
|
|
25
|
+
end
|
|
26
|
+
else
|
|
27
|
+
f=File.new(Lldb_init_path,"w+")
|
|
28
|
+
f.puts ''
|
|
29
|
+
f.puts Commond_str
|
|
30
|
+
f.close
|
|
31
|
+
end
|
|
32
|
+
File.chmod(0664,Lldb_init_path)
|
|
33
|
+
|
|
34
|
+
# 配置执行脚本
|
|
35
|
+
if !File.exist?(Lldb_source_path)
|
|
36
|
+
Dir.mkdir(Lldb_source_path)
|
|
37
|
+
end
|
|
38
|
+
File.chmod(0775,Lldb_source_path)
|
|
39
|
+
scriptPath = File.dirname(Pathname.new(__FILE__).realpath)
|
|
40
|
+
File.rename scriptPath+'/setup.i', Lldb_file_path
|
|
41
|
+
File.chmod(0775,Lldb_file_path)
|
|
42
|
+
|
|
43
|
+
puts "Please use the isource command in your Xcode LLDB."
|
|
44
|
+
end
|
data/lib/setup.i
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
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 (OOOO000000OO000OO ):#line:24
|
|
20
|
+
print ("internal error code : "+str (OOOO000000OO000OO ))#line:25
|
|
21
|
+
def lz_log (O0OO00OO000O00000 ):#line:27
|
|
22
|
+
pass #line:30
|
|
23
|
+
def manage_source_dir ():#line:33
|
|
24
|
+
OOOOOO0OO0OO0O000 =os .path .exists (source_lldb_dir )#line:34
|
|
25
|
+
if not OOOOOO0OO0OO0O000 :#line:35
|
|
26
|
+
os .makedirs (source_lldb_dir )#line:36
|
|
27
|
+
os .makedirs (source_code_dir )#line:37
|
|
28
|
+
else :#line:38
|
|
29
|
+
O0OO00OOOOOO000O0 =os .path .exists (source_code_dir )#line:39
|
|
30
|
+
if not O0OO00OOOOOO000O0 :#line:40
|
|
31
|
+
os .makedirs (source_code_dir )#line:41
|
|
32
|
+
def create_cache_file ():#line:44
|
|
33
|
+
O00O00OO0O0OOOO00 =os .path .exists (project_info_cache )#line:45
|
|
34
|
+
if not O00O00OO0O0OOOO00 :#line:46
|
|
35
|
+
O00OO0O00OOO0O0O0 =open (project_info_cache ,'w')#line:47
|
|
36
|
+
O00OO0O00OOO0O0O0 .close ()#line:48
|
|
37
|
+
def write_cache_file (O0O00OOOO0O0OO0OO ):#line:50
|
|
38
|
+
if O0O00OOOO0O0OO0OO [0 ]!=None and O0O00OOOO0O0OO0OO [1 ]!=None and O0O00OOOO0O0OO0OO [2 ]!=None and O0O00OOOO0O0OO0OO [3 ]!=None :#line:51
|
|
39
|
+
O000OO000O0OOOO0O =list (O0O00OOOO0O0OO0OO )#line:52
|
|
40
|
+
OOOOO00O0O00OO0O0 ='---'.join (O000OO000O0OOOO0O )#line:53
|
|
41
|
+
OO0O0O0O00OOOOOOO =open (project_info_cache ,'a+')#line:54
|
|
42
|
+
OO0O0O0O00OOOOOOO .write (OOOOO00O0O00OO0O0 +"\n")#line:55
|
|
43
|
+
OO0O0O0O00OOOOOOO .close ()#line:56
|
|
44
|
+
def read_cache_file (O0O0OO00O000O0O0O ):#line:58
|
|
45
|
+
O0O0O0OOOO0OOOOOO =None #line:59
|
|
46
|
+
with open (project_info_cache ,'r',encoding ='utf-8')as OOO0OO00OO00OOO00 :#line:60
|
|
47
|
+
O0OOO0OO0OO0O000O =OOO0OO00OO00OOO00 .readlines ()#line:61
|
|
48
|
+
for O00000O0O0OOO0OO0 in range (0 ,len (O0OOO0OO0OO0O000O )):#line:62
|
|
49
|
+
OO0000000O00O0O00 =re .search (O0O0OO00O000O0O0O ,O0OOO0OO0OO0O000O [O00000O0O0OOO0OO0 ])#line:63
|
|
50
|
+
if OO0000000O00O0O00 !=None :#line:64
|
|
51
|
+
OO0O0OO0OO0000O0O =O0OOO0OO0OO0O000O [O00000O0O0OOO0OO0 ]#line:65
|
|
52
|
+
OOOO00OOO00O0OO00 =OO0O0OO0OO0000O0O .split ('---')#line:66
|
|
53
|
+
O0O0O0OOOO0OOOOOO =tuple (OOOO00OOO00O0OO00 )#line:67
|
|
54
|
+
break #line:68
|
|
55
|
+
return O0O0O0OOOO0OOOOOO #line:69
|
|
56
|
+
def manage_job_inis ():#line:72
|
|
57
|
+
O0OOOO00OOOOO00O0 =os .path .exists (drrr_job_inis_dir )#line:73
|
|
58
|
+
if O0OOOO00OOOOO00O0 ==True :#line:74
|
|
59
|
+
OO0OOO000000OOO0O ="cd "+drrr_job_inis_dir +"; git pull"#line:75
|
|
60
|
+
O0000OOOOO0O0000O =os .popen (OO0OOO000000OOO0O )#line:76
|
|
61
|
+
OOO000OO00000OO0O =O0000OOOOO0O0000O .read ()#line:77
|
|
62
|
+
OOO00000O0O0O0OO0 =re .search ("fatal",OOO000OO00000OO0O )#line:78
|
|
63
|
+
if OOO00000O0O0O0OO0 !=None :#line:79
|
|
64
|
+
lz_error (0 )#line:80
|
|
65
|
+
else :#line:81
|
|
66
|
+
O000O00O0000OO00O ="git clone "+drrr_job_inis_addr +" "+drrr_job_inis_dir #line:82
|
|
67
|
+
O0000OOOOO0O0000O =os .popen (O000O00O0000OO00O )#line:83
|
|
68
|
+
OOO000OO00000OO0O =O0000OOOOO0O0000O .read ()#line:84
|
|
69
|
+
OOO00000O0O0O0OO0 =re .search ("fatal",OOO000OO00000OO0O )#line:85
|
|
70
|
+
if OOO00000O0O0O0OO0 !=None :#line:86
|
|
71
|
+
lz_error (0 )#line:87
|
|
72
|
+
def get_debug_file_path (O000O00OO0O0OO000 ):#line:90
|
|
73
|
+
OO000O00O000O0000 =lldb .debugger .GetCommandInterpreter ()#line:91
|
|
74
|
+
O0O0O00000O0OO00O =lldb .SBCommandReturnObject ()#line:92
|
|
75
|
+
OO000O00O000O0000 .HandleCommand ('image lookup -v --address '+O000O00OO0O0OO000 ,O0O0O00000O0OO00O )#line:93
|
|
76
|
+
O000OOOOO0O000000 =O0O0O00000O0OO00O .GetOutput ()#line:94
|
|
77
|
+
O00O00O000O000OOO =""#line:96
|
|
78
|
+
O0OO000O0OO0O00OO =re .search ('error',O000OOOOO0O000000 )#line:97
|
|
79
|
+
if O0OO000O0OO0O00OO !=None :#line:98
|
|
80
|
+
return O00O00O000O000OOO #line:99
|
|
81
|
+
OOO0OO0OO0OO0OO0O =O000OOOOO0O000000 .split ("\n")#line:102
|
|
82
|
+
if len (OOO0OO0OO0OO0OO0O )>3 :#line:103
|
|
83
|
+
OOO0OOO0OOO0O0O0O =OOO0OO0OO0OO0OO0O [3 ].strip ()#line:104
|
|
84
|
+
O0OO0OOO0000OOO00 =OOO0OOO0OOO0O0O0O .split (",")#line:106
|
|
85
|
+
if len (O0OO0OOO0000OOO00 )>1 :#line:107
|
|
86
|
+
OO00OO000O0000O0O =O0OO0OOO0000OOO00 [1 ].strip ()#line:108
|
|
87
|
+
OO000000OO0O0O0O0 =OO00OO000O0000O0O .split ("=")#line:110
|
|
88
|
+
if len (OO000000OO0O0O0O0 )>1 :#line:111
|
|
89
|
+
OOO000OO00OOO0000 =OO000000OO0O0O0O0 [1 ].strip ()#line:112
|
|
90
|
+
O00O00O000O000OOO =OOO000OO00OOO0000 .replace ('\"','')#line:114
|
|
91
|
+
return O00O00O000O000OOO #line:116
|
|
92
|
+
def get_inis_info (O0OO00OO0O0O0000O ):#line:119
|
|
93
|
+
O0O0OO000O00000O0 =None #line:121
|
|
94
|
+
O0O0O00OOOO0OO00O =None #line:122
|
|
95
|
+
OO0O0OOOOOOO0OOO0 =None #line:123
|
|
96
|
+
O0OO0O0OO000O0000 =None #line:124
|
|
97
|
+
OOOO0O00OOOOO000O =O0OO00OO0O0O0000O .split ("/")#line:127
|
|
98
|
+
for O0OO0OOO000O0000O in range (0 ,len (OOOO0O00OOOOO000O )):#line:128
|
|
99
|
+
if OOOO0O00OOOOO000O [O0OO0OOO000O0000O ]=="module_files":#line:129
|
|
100
|
+
O0O0O00OOOO0OO00O =OOOO0O00OOOOO000O [O0OO0OOO000O0000O ]+"/"+OOOO0O00OOOOO000O [O0OO0OOO000O0000O +1 ]+"/"+OOOO0O00OOOOO000O [O0OO0OOO000O0000O +2 ]#line:130
|
|
101
|
+
O0O0OO000O00000O0 =OOOO0O00OOOOO000O [O0OO0OOO000O0000O +1 ]#line:131
|
|
102
|
+
break #line:132
|
|
103
|
+
if O0O0O00OOOO0OO00O !=None and len (O0O0O00OOOO0OO00O )>0 :#line:139
|
|
104
|
+
OOOO000O00OOO0000 =os .listdir (drrr_job_inis_dir_modules )#line:140
|
|
105
|
+
for O0OO0OOO000O0000O in range (0 ,len (OOOO000O00OOO0000 )):#line:141
|
|
106
|
+
O00OO00O0O0OO0OOO =drrr_job_inis_dir_modules +"/"+OOOO000O00OOO0000 [O0OO0OOO000O0000O ]#line:142
|
|
107
|
+
with open (O00OO00O0O0OO0OOO ,'r',encoding ='utf-8')as O000O00OO0000O0OO :#line:144
|
|
108
|
+
OOOO0OO00OOO000OO =O000O00OO0000O0OO .readlines ()#line:145
|
|
109
|
+
for O0OO0OOO000O0000O in range (0 ,len (OOOO0OO00OOO000OO )):#line:146
|
|
110
|
+
O000O000OO0O00O00 =re .search (O0O0O00OOOO0OO00O ,OOOO0OO00OOO000OO [O0OO0OOO000O0000O ])#line:147
|
|
111
|
+
if O000O000OO0O00O00 !=None :#line:148
|
|
112
|
+
OO0O0OOOOOOO0OOO0 =OOOO000O00OOO0000 [O0OO0OOO000O0000O ]#line:149
|
|
113
|
+
O0000000O0000000O =O0OO0OOO000O0000O -5 if O0OO0OOO000O0000O >5 else 0 #line:150
|
|
114
|
+
O00OOO000O0000O00 =O0OO0OOO000O0000O +5 if O0OO0OOO000O0000O +5 <len (OOOO0OO00OOO000OO )else len (OOOO0OO00OOO000OO )#line:151
|
|
115
|
+
for OOOOOO0000O00OOOO in range (O0000000O0000000O ,O00OOO000O0000O00 ):#line:152
|
|
116
|
+
O00000OO0O0O0O0OO =re .findall ("ssh://git@gitlab.qiyi.domain:[^/]+?/.*?"+O0O0OO000O00000O0 +"*?[^0~9]?.git",OOOO0OO00OOO000OO [OOOOOO0000O00OOOO ])#line:153
|
|
117
|
+
if len (O00000OO0O0O0O0OO )>0 :#line:154
|
|
118
|
+
O0OO0O0OO000O0000 =O00000OO0O0O0O0OO [0 ]#line:155
|
|
119
|
+
break #line:156
|
|
120
|
+
if O0OO0O0OO000O0000 !=None :#line:157
|
|
121
|
+
break #line:158
|
|
122
|
+
if O0OO0O0OO000O0000 !=None :#line:159
|
|
123
|
+
break #line:160
|
|
124
|
+
return (O0O0OO000O00000O0 ,OO0O0OOOOOOO0OOO0 ,O0O0O00OOOO0OO00O ,O0OO0O0OO000O0000 )#line:179
|
|
125
|
+
def download_git_source_code (OO00OO0OOO0O000O0 ,O00O0O00O00000OO0 ):#line:183
|
|
126
|
+
O00OOOO0OO0OOOO00 =source_code_dir +"/"+OO00OO0OOO0O000O0 #line:184
|
|
127
|
+
OOOO0OO00O0O0OOO0 =os .path .exists (O00OOOO0OO0OOOO00 )#line:185
|
|
128
|
+
if not OOOO0OO00O0O0OOO0 :#line:187
|
|
129
|
+
os .makedirs (O00OOOO0OO0OOOO00 )#line:188
|
|
130
|
+
OOOOO00O00OO00O00 ="git clone "+O00O0O00O00000OO0 +" "+O00OOOO0OO0OOOO00 #line:189
|
|
131
|
+
OOO0O0OO000O0000O =os .popen (OOOOO00O00OO00O00 )#line:190
|
|
132
|
+
OO00000O00O00OO00 =OOO0O0OO000O0000O .read ()#line:191
|
|
133
|
+
O00O00OO00000O00O =re .search ("fatal",OO00000O00O00OO00 )#line:192
|
|
134
|
+
if O00O00OO00000O00O !=None :#line:193
|
|
135
|
+
return ""#line:194
|
|
136
|
+
else :#line:195
|
|
137
|
+
OO00000O00OO00OOO ="cd "+O00OOOO0OO0OOOO00 +"; git pull"#line:196
|
|
138
|
+
OOO0O0OO000O0000O =os .popen (OO00000O00OO00OOO )#line:197
|
|
139
|
+
OO00000O00O00OO00 =OOO0O0OO000O0000O .read ()#line:198
|
|
140
|
+
O00O00OO00000O00O =re .search ("fatal",OO00000O00O00OO00 )#line:199
|
|
141
|
+
if O00O00OO00000O00O !=None :#line:200
|
|
142
|
+
return ""#line:201
|
|
143
|
+
return O00OOOO0OO0OOOO00 #line:203
|
|
144
|
+
def get_update_time ():#line:206
|
|
145
|
+
O0O00OO00O0OO0O00 =user_dir +"/.cocoapods/repos/qiyi-podspecs/"#line:208
|
|
146
|
+
O00OOO0OO0000OOO0 =os .path .getmtime (O0O00OO00O0OO0O00 )#line:209
|
|
147
|
+
O0OO0O0O000000O0O =time .localtime (O00OOO0OO0000OOO0 )#line:210
|
|
148
|
+
O00000OO00OO0OO0O =time .strftime ("%m %d %H:%M:%S %Y",O0OO0O0O000000O0O )#line:213
|
|
149
|
+
OOO000000OO000O00 =O00000OO00OO0OO0O .split (" ")#line:214
|
|
150
|
+
OOOOOOO0OOO0O0OO0 =OOO000000OO000O00 [0 ]#line:215
|
|
151
|
+
if OOOOOOO0OOO0O0OO0 =='1':#line:217
|
|
152
|
+
OOOOOOO0OOO0O0OO0 ='Jan'#line:218
|
|
153
|
+
if OOOOOOO0OOO0O0OO0 =='2':#line:219
|
|
154
|
+
OOOOOOO0OOO0O0OO0 ='Feb'#line:220
|
|
155
|
+
if OOOOOOO0OOO0O0OO0 =='3':#line:221
|
|
156
|
+
OOOOOOO0OOO0O0OO0 ='Mar'#line:222
|
|
157
|
+
if OOOOOOO0OOO0O0OO0 =='4':#line:223
|
|
158
|
+
OOOOOOO0OOO0O0OO0 ='Apr'#line:224
|
|
159
|
+
if OOOOOOO0OOO0O0OO0 =='5':#line:225
|
|
160
|
+
OOOOOOO0OOO0O0OO0 ='May'#line:226
|
|
161
|
+
if OOOOOOO0OOO0O0OO0 =='6':#line:227
|
|
162
|
+
OOOOOOO0OOO0O0OO0 ='Jun'#line:228
|
|
163
|
+
if OOOOOOO0OOO0O0OO0 =='7':#line:229
|
|
164
|
+
OOOOOOO0OOO0O0OO0 ='Jul'#line:230
|
|
165
|
+
if OOOOOOO0OOO0O0OO0 =='8':#line:231
|
|
166
|
+
OOOOOOO0OOO0O0OO0 ='Aug'#line:232
|
|
167
|
+
if OOOOOOO0OOO0O0OO0 =='9':#line:233
|
|
168
|
+
OOOOOOO0OOO0O0OO0 ='Sep'#line:234
|
|
169
|
+
if OOOOOOO0OOO0O0OO0 =='10':#line:235
|
|
170
|
+
OOOOOOO0OOO0O0OO0 ='Oct'#line:236
|
|
171
|
+
if OOOOOOO0OOO0O0OO0 =='11':#line:237
|
|
172
|
+
OOOOOOO0OOO0O0OO0 ='Nov'#line:238
|
|
173
|
+
if OOOOOOO0OOO0O0OO0 =='12':#line:239
|
|
174
|
+
OOOOOOO0OOO0O0OO0 ='Dec'#line:240
|
|
175
|
+
OOO000000OO000O00 [0 ]=OOOOOOO0OOO0O0OO0 #line:242
|
|
176
|
+
return ' '.join (OOO000000OO000O00 )#line:244
|
|
177
|
+
def change_source_code_commit (O0000O00OO0O0O000 ):#line:247
|
|
178
|
+
O00OOO0OOOO0OOOOO =get_update_time ()#line:250
|
|
179
|
+
OO0O0OO00OOOO0OO0 ="cd "+O0000O00OO0O0O000 +"; git rev-list -n 1 --before=\""+O00OOO0OOOO0OOOOO +"\" master"#line:252
|
|
180
|
+
OO00O0O0OO0O0OO0O =os .popen (OO0O0OO00OOOO0OO0 )#line:253
|
|
181
|
+
O00O0O0O000OO0O0O =OO00O0O0OO0O0OO0O .read ()#line:254
|
|
182
|
+
OOOOO0OOO00OOO0O0 =re .search ("fatal",O00O0O0O000OO0O0O )#line:255
|
|
183
|
+
if OOOOO0OOO00OOO0O0 !=None :#line:256
|
|
184
|
+
return False #line:257
|
|
185
|
+
else :#line:258
|
|
186
|
+
return True #line:259
|
|
187
|
+
def checkError (OOOO000O00OOO00O0 ,OO0O00OOO0OOO0000 ):#line:261
|
|
188
|
+
O00OO0O0OO00OOO0O =re .search (OO0O00OOO0OOO0000 ,OOOO000O00OOO00O0 )#line:262
|
|
189
|
+
if O00OO0O0OO00OOO0O ==None :#line:263
|
|
190
|
+
return True #line:264
|
|
191
|
+
else :#line:265
|
|
192
|
+
return False #line:266
|
|
193
|
+
def map_source_code (O0OO00OO00O0OOOO0 ,O0O0O0OOOOOOO0O00 ,O0000O000OO0O00OO ):#line:269
|
|
194
|
+
O0000OOOO0OOO0000 =O0O0O0OOOOOOO0O00 .split (O0000O000OO0O00OO )#line:270
|
|
195
|
+
OO000OO00O000O0O0 =O0000OOOO0OOO0000 [0 ]+O0000O000OO0O00OO #line:271
|
|
196
|
+
O0OO000000OOOO00O =lldb .debugger .GetCommandInterpreter ()#line:272
|
|
197
|
+
O00000OO0OO0OO0O0 =lldb .SBCommandReturnObject ()#line:273
|
|
198
|
+
O0OO000000OOOO00O .HandleCommand ("settings append target.source-map "+OO000OO00O000O0O0 +" "+O0OO00OO00O0OOOO0 ,O00000OO0OO0OO0O0 )#line:274
|
|
199
|
+
O0OOO000O0O0000OO =O00000OO0OO0OO0O0 .GetOutput ()#line:275
|
|
200
|
+
OOOO0O00OO00OOOOO =re .search ('error',O0OOO000O0O0000OO )#line:276
|
|
201
|
+
if OOOO0O00OO00OOOOO ==None :#line:277
|
|
202
|
+
return True #line:278
|
|
203
|
+
else :#line:279
|
|
204
|
+
return False #line:280
|
|
205
|
+
def thread_step_inst (OO000OOOO0O0OO000 ):#line:283
|
|
206
|
+
pass #line:284
|
|
207
|
+
def adjustStackFrame (OOO00OOOOO000000O ):#line:287
|
|
208
|
+
OOO00OOOOO000000O .SetAsync (True )#line:298
|
|
209
|
+
O00O00OOO000O0O00 =OOO00OOOOO000000O .GetSelectedTarget ().GetProcess ().GetSelectedThread ()#line:303
|
|
210
|
+
O0O000OOOO000OO00 =O00O00OOO000O0O00 .GetSelectedFrame ().GetFrameID ()#line:304
|
|
211
|
+
OO000000OO0O00000 =lldb .debugger .GetCommandInterpreter ()#line:306
|
|
212
|
+
O0O00OO00OOO0O0O0 =lldb .SBCommandReturnObject ()#line:307
|
|
213
|
+
OO000000OO0O00000 .HandleCommand ("thread step-inst",O0O00OO00OOO0O0O0 )#line:311
|
|
214
|
+
O00OOOOO000OOOOOO =O0O00OO00OOO0O0O0 .GetOutput ()#line:312
|
|
215
|
+
OOOO0O0OO0O00000O =re .search ('error',O00OOOOO000OOOOOO )#line:313
|
|
216
|
+
if OOOO0O0OO0O00000O !=None :#line:314
|
|
217
|
+
return False #line:315
|
|
218
|
+
time .sleep (0.5 )#line:317
|
|
219
|
+
OO000000OO0O00000 .HandleCommand ("frame select "+str (O0O000OOOO000OO00 ),O0O00OO00OOO0O0O0 )#line:326
|
|
220
|
+
O00OOOOO000OOOOOO =O0O00OO00OOO0O0O0 .GetOutput ()#line:327
|
|
221
|
+
OOOO0O0OO0O00000O =re .search ('error',O00OOOOO000OOOOOO )#line:328
|
|
222
|
+
if OOOO0O0OO0O00000O !=None :#line:330
|
|
223
|
+
return False #line:331
|
|
224
|
+
def clean (OO0OOO0000O00O0O0 ):#line:333
|
|
225
|
+
OOO000000O00OOOO0 =os .listdir (OO0OOO0000O00O0O0 )#line:334
|
|
226
|
+
for OOOO0OO0O000O00O0 in OOO000000O00OOOO0 :#line:335
|
|
227
|
+
OO0O0OO00OO0000OO =os .path .join (OO0OOO0000O00O0O0 ,OOOO0OO0O000O00O0 )#line:336
|
|
228
|
+
if os .path .isfile (OO0O0OO00OO0000OO ):#line:337
|
|
229
|
+
os .remove (OO0O0OO00OO0000OO )#line:338
|
|
230
|
+
elif os .path .isdir (OO0O0OO00OO0000OO ):#line:339
|
|
231
|
+
shutil .rmtree (OO0O0OO00OO0000OO )#line:340
|
|
232
|
+
pass #line:341
|
|
233
|
+
def processing (O0O00O00O000O0O00 ):#line:351
|
|
234
|
+
sys .stdout .write (O0O00O00O000O0O00 )#line:352
|
|
235
|
+
sys .stdout .flush ()#line:353
|
|
236
|
+
def start (O0OOO000O00OOO00O ,OOO00O0O00OOOO00O ):#line:355
|
|
237
|
+
processing ("processing")#line:357
|
|
238
|
+
processing (".")#line:360
|
|
239
|
+
lz_log (1 )#line:362
|
|
240
|
+
O0OOOOO00O00OOOO0 =get_debug_file_path (OOO00O0O00OOOO00O )#line:363
|
|
241
|
+
if O0OOOOO00O00OOOO0 ==None or len (O0OOOOO00O00OOOO0 )==0 :#line:364
|
|
242
|
+
lz_error (1 )#line:365
|
|
243
|
+
return #line:366
|
|
244
|
+
processing (".")#line:370
|
|
245
|
+
lz_log (2 )#line:371
|
|
246
|
+
O0O0000OO0OO0OO00 =get_inis_info (O0OOOOO00O00OOOO0 )#line:372
|
|
247
|
+
if O0O0000OO0OO0OO00 [0 ]==None or O0O0000OO0OO0OO00 [1 ]==None and O0O0000OO0OO0OO00 [2 ]==None or O0O0000OO0OO0OO00 [3 ]==None :#line:373
|
|
248
|
+
lz_error (2 )#line:374
|
|
249
|
+
return #line:375
|
|
250
|
+
processing (".")#line:378
|
|
251
|
+
lz_log (3 )#line:379
|
|
252
|
+
OOO00O0OO00O00000 =download_git_source_code (O0O0000OO0OO0OO00 [0 ],O0O0000OO0OO0OO00 [3 ])#line:380
|
|
253
|
+
if OOO00O0OO00O00000 ==None or len (OOO00O0OO00O00000 )==0 :#line:381
|
|
254
|
+
lz_error (3 )#line:382
|
|
255
|
+
return #line:383
|
|
256
|
+
processing (".")#line:386
|
|
257
|
+
lz_log (4 )#line:387
|
|
258
|
+
O0OO0O0O000O0O000 =change_source_code_commit (OOO00O0OO00O00000 )#line:388
|
|
259
|
+
if O0OO0O0O000O0O000 ==False :#line:389
|
|
260
|
+
lz_error (4 )#line:390
|
|
261
|
+
return #line:391
|
|
262
|
+
processing (".")#line:394
|
|
263
|
+
lz_log (5 )#line:395
|
|
264
|
+
O0OO0O0O000O0O000 =map_source_code (OOO00O0OO00O00000 ,O0OOOOO00O00OOOO0 ,O0O0000OO0OO0OO00 [2 ])#line:396
|
|
265
|
+
if O0OO0O0O000O0O000 ==False :#line:397
|
|
266
|
+
lz_error (5 )#line:398
|
|
267
|
+
return #line:399
|
|
268
|
+
print (".")#line:402
|
|
269
|
+
lz_log (6 )#line:403
|
|
270
|
+
O0OO0O0O000O0O000 =adjustStackFrame (O0OOO000O00OOO00O )#line:404
|
|
271
|
+
if O0OO0O0O000O0O000 ==False :#line:405
|
|
272
|
+
lz_error (6 )#line:406
|
|
273
|
+
return #line:407
|
|
274
|
+
def help ():#line:410
|
|
275
|
+
print ("Usage:")#line:412
|
|
276
|
+
print (" isource memory_address eg:isource 0x8badf00d")#line:413
|
|
277
|
+
print ("Commands:")#line:415
|
|
278
|
+
print (" + help command help")#line:416
|
|
279
|
+
print (" + clean clean cache")#line:417
|
|
280
|
+
pass #line:418
|
|
281
|
+
def helloworld (OO0OOOO0O00O000O0 ,O00OO00O0O000O0OO ,OOOO0OOO0O00O0O0O ,OOOO0OO0OO000OOOO ):#line:421
|
|
282
|
+
if O00OO00O0O000O0OO ==None or O00OO00O0O000O0OO =='-h':#line:423
|
|
283
|
+
help ()#line:424
|
|
284
|
+
elif O00OO00O0O000O0OO =='-c':#line:425
|
|
285
|
+
clean (source_code_dir )#line:426
|
|
286
|
+
elif re .match ('0x.*[a-z0-9]',O00OO00O0O000O0OO )!=None :#line:427
|
|
287
|
+
start (OO0OOOO0O00O000O0 ,O00OO00O0O000O0OO )#line:428
|
|
288
|
+
else :#line:429
|
|
289
|
+
print ('error: '+O00OO00O0O000O0OO +' is not a valid command.')#line:430
|
|
290
|
+
help ()#line:431
|
|
291
|
+
def __lldb_init_module (O0OO00OO0OO0O0O00 ,O0000O0000OO00O0O ):#line:434
|
|
292
|
+
manage_source_dir ()#line:436
|
|
293
|
+
manage_job_inis ()#line:440
|
|
294
|
+
O0OO00OO0OO0O0O00 .HandleCommand ("command script add -f isource_lldb.helloworld isource")#line:442
|
|
295
|
+
|
metadata
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: isource_lldb
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- ningyuan
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2020-12-04 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: An plugin of LLDB.
|
|
14
|
+
email:
|
|
15
|
+
- m13811217138@gmail.com
|
|
16
|
+
executables: []
|
|
17
|
+
extensions: []
|
|
18
|
+
extra_rdoc_files: []
|
|
19
|
+
files:
|
|
20
|
+
- lib/rubygems_plugin.rb
|
|
21
|
+
- lib/setup.i
|
|
22
|
+
homepage: https://github.com/Jeremi-LZ/isource_lldb
|
|
23
|
+
licenses:
|
|
24
|
+
- MIT
|
|
25
|
+
metadata: {}
|
|
26
|
+
post_install_message:
|
|
27
|
+
rdoc_options: []
|
|
28
|
+
require_paths:
|
|
29
|
+
- lib
|
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
31
|
+
requirements:
|
|
32
|
+
- - ">="
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: 2.3.0
|
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
40
|
+
requirements: []
|
|
41
|
+
rubygems_version: 3.0.3
|
|
42
|
+
signing_key:
|
|
43
|
+
specification_version: 4
|
|
44
|
+
summary: An plugin of LLDB.
|
|
45
|
+
test_files: []
|