isource_lldb 0.1.0 → 0.2.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/rubygems_plugin.rb +46 -1
- data/lib/setup +301 -0
- metadata +3 -3
- data/lib/setup.i +0 -295
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a04d2f026fe929f51bc5c0bd023da6990f674f6b92497997a9dacfc6af66a87b
|
|
4
|
+
data.tar.gz: 34142fc5b406998fece08ca63f6a6d64ed06ec71a9b59cb6c769b297311c2f42
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 282bc58381b6c0a6b914f99d63ed0ca1564d0fc5dac472775bf9beab4b5bf48ffaa2e7a5b1a1801b7b51248b84ecccbf8667f3ba1534b31448ea8ad25855dac1
|
|
7
|
+
data.tar.gz: 9d5e42702af88e12eb9be2622d4d2db55c1c5a04f3050aa2fc6bb369ef4ba3140c63b3d6573818af78d69d64fc13af691d4ec76504b4550b7e8159cdbaab0f62
|
data/lib/rubygems_plugin.rb
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
require 'pathname'
|
|
3
3
|
|
|
4
4
|
Lldb_init_path = File.expand_path('~')+'/.lldbinit'
|
|
5
|
+
Lldb_init_path_temp = File.expand_path('~')+'/.lldbinit_temp'
|
|
5
6
|
Lldb_source_path = File.expand_path('~')+'/.isource_lldb'
|
|
6
7
|
Lldb_file_path = File.expand_path('~')+'/.isource_lldb/isource_lldb.py'
|
|
7
8
|
Commond_str = 'command script import '+Lldb_file_path
|
|
@@ -37,8 +38,52 @@ Gem.post_install do
|
|
|
37
38
|
end
|
|
38
39
|
File.chmod(0775,Lldb_source_path)
|
|
39
40
|
scriptPath = File.dirname(Pathname.new(__FILE__).realpath)
|
|
40
|
-
File.rename scriptPath+'/setup
|
|
41
|
+
File.rename scriptPath+'/setup', Lldb_file_path
|
|
41
42
|
File.chmod(0775,Lldb_file_path)
|
|
42
43
|
|
|
43
44
|
puts "Please use the isource command in your Xcode LLDB."
|
|
44
45
|
end
|
|
46
|
+
|
|
47
|
+
def remove_dir(path)
|
|
48
|
+
if File.directory?(path)
|
|
49
|
+
Dir.foreach(path) do |file|
|
|
50
|
+
if ((file.to_s != ".") and (file.to_s != ".."))
|
|
51
|
+
remove_dir("#{path}/#{file}")
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
Dir.delete(path)
|
|
55
|
+
else
|
|
56
|
+
File.delete(path)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def remove_file()
|
|
61
|
+
f_temp = File.new(Lldb_init_path_temp,"w")
|
|
62
|
+
f = File.new(Lldb_init_path, 'r')
|
|
63
|
+
f.each do |line|
|
|
64
|
+
if !line.chomp.include?Commond_str
|
|
65
|
+
f_temp.puts line
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
f.close
|
|
69
|
+
f_temp.close
|
|
70
|
+
|
|
71
|
+
File.delete(Lldb_init_path)
|
|
72
|
+
File.rename Lldb_init_path_temp, Lldb_init_path
|
|
73
|
+
File.chmod(0664,Lldb_init_path)
|
|
74
|
+
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
Gem.post_uninstall do
|
|
78
|
+
if File.exist?(Lldb_source_path)
|
|
79
|
+
remove_dir(Lldb_source_path)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
if File.exist?(Lldb_init_path)
|
|
83
|
+
remove_file()
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
puts "Thank you for using isource."
|
|
87
|
+
|
|
88
|
+
end
|
|
89
|
+
|
data/lib/setup
ADDED
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
# !/usr/bin/env python3
|
|
2
|
+
import lldb #line:5:import lldb
|
|
3
|
+
import os #line:6:import os
|
|
4
|
+
import re #line:7:import re
|
|
5
|
+
import time #line:8:import time
|
|
6
|
+
import datetime #line:9:import datetime
|
|
7
|
+
import queue #line:10:import queue
|
|
8
|
+
import shutil #line:11:import shutil
|
|
9
|
+
import threading #line:12:import threading
|
|
10
|
+
import sys #line:13:import sys
|
|
11
|
+
from threading import Thread #line:14:from threading import Thread
|
|
12
|
+
user_dir =os .path .expanduser ('~')#line:16:user_dir = os.path.expanduser('~')
|
|
13
|
+
source_lldb_dir =user_dir +"/.isource_lldb"#line:17:source_lldb_dir = user_dir + "/.isource_lldb"
|
|
14
|
+
source_code_dir =source_lldb_dir +"/source_code"#line:18:source_code_dir = source_lldb_dir + "/source_code"
|
|
15
|
+
drrr_job_inis_dir =source_lldb_dir +"/drrr_job_inis"#line:19:drrr_job_inis_dir = source_lldb_dir + "/drrr_job_inis"
|
|
16
|
+
drrr_job_inis_dir_modules =drrr_job_inis_dir +"/modules"#line:20:drrr_job_inis_dir_modules = drrr_job_inis_dir + "/modules"
|
|
17
|
+
drrr_job_inis_addr ='ssh://git@gitlab.qiyi.domain:10022/qytools/drrr_job_inis.git'#line:21:drrr_job_inis_addr = 'ssh://git@gitlab.qiyi.domain:10022/qytools/drrr_job_inis.git'
|
|
18
|
+
project_info_cache =source_lldb_dir +"/project_info_cache.txt"#line:22:project_info_cache = source_lldb_dir + "/project_info_cache.txt"
|
|
19
|
+
def lz_error (O00O0OO0O0O0O0OO0 ):#line:24:def lz_error(reason_t):
|
|
20
|
+
print ("internal error code : "+str (O00O0OO0O0O0O0OO0 ))#line:25:print("internal error code : " + str(reason_t))
|
|
21
|
+
def lz_log (O00OO0OOOOO0O00OO ):#line:27:def lz_log(reason_t):
|
|
22
|
+
pass #line:30:pass
|
|
23
|
+
def manage_source_dir ():#line:33:def manage_source_dir():
|
|
24
|
+
OOO0O0O0OO000O0OO =os .path .exists (source_lldb_dir )#line:34:source_lldb_dir_isExists = os.path.exists(source_lldb_dir)
|
|
25
|
+
if not OOO0O0O0OO000O0OO :#line:35:if not source_lldb_dir_isExists:
|
|
26
|
+
os .makedirs (source_lldb_dir )#line:36:os.makedirs(source_lldb_dir)
|
|
27
|
+
os .makedirs (source_code_dir )#line:37:os.makedirs(source_code_dir)
|
|
28
|
+
else :#line:38:else:
|
|
29
|
+
O0O00OO000O0OO0OO =os .path .exists (source_code_dir )#line:39:source_code_dir_isExists = os.path.exists(source_code_dir)
|
|
30
|
+
if not O0O00OO000O0OO0OO :#line:40:if not source_code_dir_isExists:
|
|
31
|
+
os .makedirs (source_code_dir )#line:41:os.makedirs(source_code_dir)
|
|
32
|
+
def create_cache_file ():#line:44:def create_cache_file():
|
|
33
|
+
OOO00O00OO000O0OO =os .path .exists (project_info_cache )#line:45:project_info_cache_isExists = os.path.exists(project_info_cache)
|
|
34
|
+
if not OOO00O00OO000O0OO :#line:46:if not project_info_cache_isExists:
|
|
35
|
+
O0O0O00OOO0O0OO00 =open (project_info_cache ,'w')#line:47:file = open(project_info_cache,'w')
|
|
36
|
+
O0O0O00OOO0O0OO00 .close ()#line:48:file.close()
|
|
37
|
+
def write_cache_file (O0O0OO0O00000O0OO ):#line:50:def write_cache_file(params):
|
|
38
|
+
if O0O0OO0O00000O0OO [0 ]!=None and O0O0OO0O00000O0OO [1 ]!=None and O0O0OO0O00000O0OO [2 ]!=None and O0O0OO0O00000O0OO [3 ]!=None :#line:51:if params[0] != None and params[1] != None and params[2] != None and params[3] != None :
|
|
39
|
+
OOO0O0OOOOOOOOOO0 =list (O0O0OO0O00000O0OO )#line:52:temp = list(params)
|
|
40
|
+
OOO0O00O00000OOOO ='---'.join (OOO0O0OOOOOOOOOO0 )#line:53:resutl = '---'.join(temp)
|
|
41
|
+
OOO0OO0O000O00OOO =open (project_info_cache ,'a+')#line:54:file = open(project_info_cache,'a+')
|
|
42
|
+
OOO0OO0O000O00OOO .write (OOO0O00O00000OOOO +"\n")#line:55:file.write(resutl+"\n")
|
|
43
|
+
OOO0OO0O000O00OOO .close ()#line:56:file.close()
|
|
44
|
+
def read_cache_file (O0O0O0OO0OO00OOO0 ):#line:58:def read_cache_file(project_name):
|
|
45
|
+
O0OO0O0OO0OO0OOO0 =None #line:59:project_info = None
|
|
46
|
+
with open (project_info_cache ,'r',encoding ='utf-8')as O00000O0000OO00O0 :#line:60:with open(project_info_cache,'r',encoding='utf-8') as f:
|
|
47
|
+
O000OO0OOO0000OO0 =O00000O0000OO00O0 .readlines ()#line:61:content_lines = f.readlines()
|
|
48
|
+
for OO0O00O0O00O0000O in range (0 ,len (O000OO0OOO0000OO0 )):#line:62:for i in range(0, len(content_lines)):
|
|
49
|
+
OOO000O0000OO0OO0 =re .search (O0O0O0OO0OO00OOO0 ,O000OO0OOO0000OO0 [OO0O00O0O00O0000O ])#line:63:result = re.search(project_name, content_lines[i])
|
|
50
|
+
if OOO000O0000OO0OO0 !=None :#line:64:if result != None:
|
|
51
|
+
OO0OOOO0O000OOO0O =O000OO0OOO0000OO0 [OO0O00O0O00O0000O ]#line:65:content_lines_temp = content_lines[i]
|
|
52
|
+
O0OOO0000O0OOO0O0 =OO0OOOO0O000OOO0O .split ('---')#line:66:infos = content_lines_temp.split('---')
|
|
53
|
+
O0OO0O0OO0OO0OOO0 =tuple (O0OOO0000O0OOO0O0 )#line:67:project_info = tuple(infos)
|
|
54
|
+
break #line:68:break
|
|
55
|
+
return O0OO0O0OO0OO0OOO0 #line:69:return project_info
|
|
56
|
+
def manage_job_inis ():#line:72:def manage_job_inis():
|
|
57
|
+
OOO00OOO0O00O00O0 =os .path .exists (drrr_job_inis_dir )#line:73:drrr_job_inis_dir_isExists = os.path.exists(drrr_job_inis_dir)
|
|
58
|
+
if OOO00OOO0O00O00O0 ==True :#line:74:if drrr_job_inis_dir_isExists == True:
|
|
59
|
+
O00O0OO00OO0O0OOO ="cd "+drrr_job_inis_dir +"; git pull"#line:75:update = "cd " + drrr_job_inis_dir + "; git pull"
|
|
60
|
+
OO000O0OO00O0O0OO =os .popen (O00O0OO00OO0O0OOO )#line:76:result = os.popen(update)
|
|
61
|
+
OO0000OOOOOO000O0 =OO000O0OO00O0O0OO .read ()#line:77:content = result.read()
|
|
62
|
+
OO000O0000O0OO0O0 =re .search ("fatal",OO0000OOOOOO000O0 )#line:78:fatal = re.search("fatal", content)
|
|
63
|
+
if OO000O0000O0OO0O0 !=None :#line:79:if fatal != None:
|
|
64
|
+
lz_error (0 )#line:80:lz_error(0)
|
|
65
|
+
else :#line:81:else:
|
|
66
|
+
OO00O0OO0O0OOOOOO ="git clone "+drrr_job_inis_addr +" "+drrr_job_inis_dir #line:82:dowmload = "git clone "+ drrr_job_inis_addr +" "+ drrr_job_inis_dir
|
|
67
|
+
OO000O0OO00O0O0OO =os .popen (OO00O0OO0O0OOOOOO )#line:83:result = os.popen(dowmload)
|
|
68
|
+
OO0000OOOOOO000O0 =OO000O0OO00O0O0OO .read ()#line:84:content = result.read()
|
|
69
|
+
OO000O0000O0OO0O0 =re .search ("fatal",OO0000OOOOOO000O0 )#line:85:fatal = re.search("fatal", content)
|
|
70
|
+
if OO000O0000O0OO0O0 !=None :#line:86:if fatal != None:
|
|
71
|
+
lz_error (0 )#line:87:lz_error(0)
|
|
72
|
+
def get_debug_file_path (O00O0O0O0O0O00OO0 ):#line:90:def get_debug_file_path(command_t):
|
|
73
|
+
O0OO0OO00OOOO0OO0 =lldb .debugger .GetCommandInterpreter ()#line:91:interpreter = lldb.debugger.GetCommandInterpreter()
|
|
74
|
+
O00O00O0O0O00OO00 =lldb .SBCommandReturnObject ()#line:92:returnObject = lldb.SBCommandReturnObject()
|
|
75
|
+
O0OO0OO00OOOO0OO0 .HandleCommand ('image lookup -v --address '+O00O0O0O0O0O00OO0 ,O00O00O0O0O00OO00 )#line:93:interpreter.HandleCommand('image lookup -v --address ' + command_t, returnObject)
|
|
76
|
+
OO00OO0O000OOO000 =O00O00O0O0O00OO00 .GetOutput ()#line:94:output = returnObject.GetOutput()
|
|
77
|
+
O0O00OO00O0O0OO0O =""#line:96:debug_file_path = ""
|
|
78
|
+
O0O0OOO0O00OO000O =re .search ('error',OO00OO0O000OOO000 )#line:97:result = re.search('error', output)
|
|
79
|
+
if O0O0OOO0O00OO000O !=None :#line:98:if result != None:
|
|
80
|
+
return O0O00OO00O0O0OO0O #line:99:return debug_file_path
|
|
81
|
+
O00O00O0O0O00O0O0 =OO00OO0O000OOO000 .split ("\n")#line:102:str_to_array = output.split("\n")
|
|
82
|
+
if len (O00O00O0O0O00O0O0 )>3 :#line:103:if len(str_to_array)>3:
|
|
83
|
+
OO0OOOOO0O000O00O =O00O00O0O0O00O0O0 [3 ].strip ()#line:104:unit_str = str_to_array[3].strip()
|
|
84
|
+
OOOOOOO000OOOO000 =OO0OOOOO0O000O00O .split (",")#line:106:file_array = unit_str.split(",")
|
|
85
|
+
if len (OOOOOOO000OOOO000 )>1 :#line:107:if len(file_array)>1:
|
|
86
|
+
O0O0O00OO0OO00000 =OOOOOOO000OOOO000 [1 ].strip ()#line:108:file = file_array[1].strip()
|
|
87
|
+
OOOO00OO00000OOO0 =O0O0O00OO0OO00000 .split ("=")#line:110:name_array = file.split("=")
|
|
88
|
+
if len (OOOO00OO00000OOO0 )>1 :#line:111:if len(name_array)>1:
|
|
89
|
+
OOOOO000O0OO0OO0O =OOOO00OO00000OOO0 [1 ].strip ()#line:112:name = name_array[1].strip()
|
|
90
|
+
O0O00OO00O0O0OO0O =OOOOO000O0OO0OO0O .replace ('\"','')#line:114:debug_file_path = name.replace('\"','')
|
|
91
|
+
return O0O00OO00O0O0OO0O #line:116:return debug_file_path
|
|
92
|
+
def get_inis_info (O0000O0000O00O0O0 ):#line:119:def get_inis_info(debug_file_path):
|
|
93
|
+
O00O000000O0000O0 =None #line:121:project_name_t = None
|
|
94
|
+
O000O0O000O0O0O0O =None #line:122:source_path_t = None
|
|
95
|
+
O00O000000O0O0OOO =None #line:123:match_inis_name = None
|
|
96
|
+
OOO0O0OOO000000O0 =None #line:124:source_code_address = None
|
|
97
|
+
O0OO0OOOOO00O00O0 =O0000O0000O00O0O0 .split ("/")#line:127:paths = debug_file_path.split("/")
|
|
98
|
+
for OO0000OO0O0O00OO0 in range (0 ,len (O0OO0OOOOO00O00O0 )):#line:128:for i in range(0, len(paths)):
|
|
99
|
+
if O0OO0OOOOO00O00O0 [OO0000OO0O0O00OO0 ]=="MODULE_DIR":#line:129:if paths[i] == "MODULE_DIR":
|
|
100
|
+
O000O0O000O0O0O0O =O0OO0OOOOO00O00O0 [OO0000OO0O0O00OO0 +1 ]#line:130:source_path_t = paths[i+1]
|
|
101
|
+
O00O000000O0000O0 =O0OO0OOOOO00O00O0 [OO0000OO0O0O00OO0 +1 ]#line:131:project_name_t = paths[i+1]
|
|
102
|
+
break #line:132:break
|
|
103
|
+
if O000O0O000O0O0O0O !=None and len (O000O0O000O0O0O0O )>0 :#line:139:if source_path_t != None and len(source_path_t) > 0 :
|
|
104
|
+
O0O0O0OOO0000O000 =os .listdir (drrr_job_inis_dir_modules )#line:140:job_inis_list = os.listdir(drrr_job_inis_dir_modules)
|
|
105
|
+
for OO0000OO0O0O00OO0 in range (0 ,len (O0O0O0OOO0000O000 )):#line:141:for i in range(0, len(job_inis_list)):
|
|
106
|
+
OO0OO0OO00O00OOO0 =drrr_job_inis_dir_modules +"/"+O0O0O0OOO0000O000 [OO0000OO0O0O00OO0 ]#line:142:job_inis_dir_t = drrr_job_inis_dir_modules + "/" + job_inis_list[i]
|
|
107
|
+
with open (OO0OO0OO00O00OOO0 ,'r',encoding ='utf-8')as OOO000OOO0O00OOOO :#line:144:with open(job_inis_dir_t,'r',encoding='utf-8') as f:
|
|
108
|
+
O0OOO0000OOO00OO0 =OOO000OOO0O00OOOO .readlines ()#line:145:content_lines = f.readlines()
|
|
109
|
+
for OO0000OO0O0O00OO0 in range (0 ,len (O0OOO0000OOO00OO0 )):#line:146:for i in range(0, len(content_lines)):
|
|
110
|
+
OOO000O0O00OOO000 =re .search (O000O0O000O0O0O0O ,O0OOO0000OOO00OO0 [OO0000OO0O0O00OO0 ])#line:147:result = re.search(source_path_t, content_lines[i])
|
|
111
|
+
if OOO000O0O00OOO000 !=None :#line:148:if result != None:
|
|
112
|
+
O00O000000O0O0OOO =O0O0O0OOO0000O000 [OO0000OO0O0O00OO0 ]#line:149:match_inis_name = job_inis_list[i]
|
|
113
|
+
OO00O0O0OO0O000O0 =OO0000OO0O0O00OO0 -5 if OO0000OO0O0O00OO0 >5 else 0 #line:150:start = i - 5 if i > 5 else 0
|
|
114
|
+
O00O00O0000OO0O0O =OO0000OO0O0O00OO0 +5 if OO0000OO0O0O00OO0 +5 <len (O0OOO0000OOO00OO0 )else len (O0OOO0000OOO00OO0 )#line:151:end = i + 5 if i + 5 < len(content_lines) else len(content_lines)
|
|
115
|
+
for O000OO0OOOOO0000O in range (OO00O0O0OO0O000O0 ,O00O00O0000OO0O0O ):#line:152:for j in range(start, end):
|
|
116
|
+
O0OOO0OO0OO00OOO0 =re .findall ("ssh://git@gitlab.qiyi.domain:[^/]+?/.*?"+O00O000000O0000O0 +"*?[^0~9]?.git",O0OOO0000OOO00OO0 [O000OO0OOOOO0000O ])#line:153:result_t = re.findall("ssh://git@gitlab.qiyi.domain:[^/]+?/.*?"+project_name_t+"*?[^0~9]?.git",content_lines[j])
|
|
117
|
+
if len (O0OOO0OO0OO00OOO0 )>0 :#line:154:if len(result_t) > 0 :
|
|
118
|
+
OOO0O0OOO000000O0 =O0OOO0OO0OO00OOO0 [0 ]#line:155:source_code_address = result_t[0]
|
|
119
|
+
break #line:156:break
|
|
120
|
+
if OOO0O0OOO000000O0 !=None :#line:157:if source_code_address != None:
|
|
121
|
+
break #line:158:break
|
|
122
|
+
if OOO0O0OOO000000O0 !=None :#line:159:if source_code_address != None:
|
|
123
|
+
break #line:160:break
|
|
124
|
+
return (O00O000000O0000O0 ,OOO0O0OOO000000O0 )#line:179:return (project_name_t,source_code_address)
|
|
125
|
+
def download_git_source_code (O0OOO00OO0OOO0O00 ,O0O000OOOO00OOOO0 ):#line:183:def download_git_source_code(p_name,git_address):
|
|
126
|
+
OOOO000O0O000O000 =source_code_dir +"/"+O0OOO00OO0OOO0O00 #line:184:project_dir = source_code_dir + "/" + p_name
|
|
127
|
+
OO00OOOO0O0OOO00O =os .path .exists (OOOO000O0O000O000 )#line:185:project_dir_isExists = os.path.exists(project_dir)
|
|
128
|
+
if not OO00OOOO0O0OOO00O :#line:187:if not project_dir_isExists:
|
|
129
|
+
os .makedirs (OOOO000O0O000O000 )#line:188:os.makedirs(project_dir)
|
|
130
|
+
O00000O0OO00OO000 ="git clone "+O0O000OOOO00OOOO0 +" "+OOOO000O0O000O000 #line:189:dowmload = "git clone "+ git_address +" " + project_dir
|
|
131
|
+
O0OO0O0OO000O0OOO =os .popen (O00000O0OO00OO000 )#line:190:result = os.popen(dowmload)
|
|
132
|
+
OO00OOO0OOO00OO00 =O0OO0O0OO000O0OOO .read ()#line:191:content = result.read()
|
|
133
|
+
O0OO0OO0OOO0O00O0 =re .search ("fatal",OO00OOO0OOO00OO00 )#line:192:fatal = re.search("fatal", content)
|
|
134
|
+
if O0OO0OO0OOO0O00O0 !=None :#line:193:if fatal != None:
|
|
135
|
+
return ""#line:194:return ""
|
|
136
|
+
else :#line:195:else:
|
|
137
|
+
OOOO0OOOOOOOO0OOO ="cd "+OOOO000O0O000O000 +"; git pull"#line:196:update = "cd " + project_dir + "; git pull"
|
|
138
|
+
O0OO0O0OO000O0OOO =os .popen (OOOO0OOOOOOOO0OOO )#line:197:result = os.popen(update)
|
|
139
|
+
OO00OOO0OOO00OO00 =O0OO0O0OO000O0OOO .read ()#line:198:content = result.read()
|
|
140
|
+
O0OO0OO0OOO0O00O0 =re .search ("fatal",OO00OOO0OOO00OO00 )#line:199:fatal = re.search("fatal", content)
|
|
141
|
+
if O0OO0OO0OOO0O00O0 !=None :#line:200:if fatal != None:
|
|
142
|
+
return ""#line:201:return ""
|
|
143
|
+
return OOOO000O0O000O000 #line:203:return project_dir
|
|
144
|
+
def get_update_time ():#line:206:def get_update_time():
|
|
145
|
+
OO0O0OOOO00O00000 =user_dir +"/.cocoapods/repos/qiyi-podspecs/"#line:208:specs_dir = user_dir + "/.cocoapods/repos/qiyi-podspecs/"
|
|
146
|
+
OOOO0OO00OOOO0000 =os .path .getmtime (OO0O0OOOO00O00000 )#line:209:timestamp = os.path.getmtime(specs_dir)
|
|
147
|
+
O0000O00OO0O0O0OO =time .localtime (OOOO0OO00OOOO0000 )#line:210:timeStruct = time.localtime(timestamp)
|
|
148
|
+
OO000O0O00OO0OOO0 =time .strftime ("%m %d %H:%M:%S %Y",O0000O00OO0O0O0OO )#line:213:time_str = time.strftime("%m %d %H:%M:%S %Y",timeStruct)
|
|
149
|
+
O00O00O0O0OO00OOO =OO000O0O00OO0OOO0 .split (" ")#line:214:file_array = time_str.split(" ")
|
|
150
|
+
O0000000OOO0O0O00 =O00O00O0O0OO00OOO [0 ]#line:215:month = file_array[0]
|
|
151
|
+
if O0000000OOO0O0O00 =='1':#line:217:if month == '1':
|
|
152
|
+
O0000000OOO0O0O00 ='Jan'#line:218:month = 'Jan'
|
|
153
|
+
if O0000000OOO0O0O00 =='2':#line:219:if month == '2':
|
|
154
|
+
O0000000OOO0O0O00 ='Feb'#line:220:month = 'Feb'
|
|
155
|
+
if O0000000OOO0O0O00 =='3':#line:221:if month == '3':
|
|
156
|
+
O0000000OOO0O0O00 ='Mar'#line:222:month = 'Mar'
|
|
157
|
+
if O0000000OOO0O0O00 =='4':#line:223:if month == '4':
|
|
158
|
+
O0000000OOO0O0O00 ='Apr'#line:224:month = 'Apr'
|
|
159
|
+
if O0000000OOO0O0O00 =='5':#line:225:if month == '5':
|
|
160
|
+
O0000000OOO0O0O00 ='May'#line:226:month = 'May'
|
|
161
|
+
if O0000000OOO0O0O00 =='6':#line:227:if month == '6':
|
|
162
|
+
O0000000OOO0O0O00 ='Jun'#line:228:month = 'Jun'
|
|
163
|
+
if O0000000OOO0O0O00 =='7':#line:229:if month == '7':
|
|
164
|
+
O0000000OOO0O0O00 ='Jul'#line:230:month = 'Jul'
|
|
165
|
+
if O0000000OOO0O0O00 =='8':#line:231:if month == '8':
|
|
166
|
+
O0000000OOO0O0O00 ='Aug'#line:232:month = 'Aug'
|
|
167
|
+
if O0000000OOO0O0O00 =='9':#line:233:if month == '9':
|
|
168
|
+
O0000000OOO0O0O00 ='Sep'#line:234:month = 'Sep'
|
|
169
|
+
if O0000000OOO0O0O00 =='10':#line:235:if month == '10':
|
|
170
|
+
O0000000OOO0O0O00 ='Oct'#line:236:month = 'Oct'
|
|
171
|
+
if O0000000OOO0O0O00 =='11':#line:237:if month == '11':
|
|
172
|
+
O0000000OOO0O0O00 ='Nov'#line:238:month = 'Nov'
|
|
173
|
+
if O0000000OOO0O0O00 =='12':#line:239:if month == '12':
|
|
174
|
+
O0000000OOO0O0O00 ='Dec'#line:240:month = 'Dec'
|
|
175
|
+
O00O00O0O0OO00OOO [0 ]=O0000000OOO0O0O00 #line:242:file_array[0] = month
|
|
176
|
+
return ' '.join (O00O00O0O0OO00OOO )#line:244:return ' '.join(file_array)
|
|
177
|
+
def change_source_code_commit (O0OOO0OOOOOOOOO00 ):#line:247:def change_source_code_commit(source_code_path_t):
|
|
178
|
+
O00OO0OOOOO00O0OO =get_update_time ()#line:250:last_update_time = get_update_time()
|
|
179
|
+
OO0O0O00OOO00O0O0 ="cd "+O0OOO0OOOOOOOOO00 +"; git rev-list -n 1 --before=\""+O00OO0OOOOO00O0OO +"\" master"#line:252:update = "cd " + source_code_path_t + "; git rev-list -n 1 --before=\""+ last_update_time +"\" master"
|
|
180
|
+
OO00OOOOO00000OO0 =os .popen (OO0O0O00OOO00O0O0 )#line:253:result = os.popen(update)
|
|
181
|
+
OOOO0O00O0OOOOOO0 =OO00OOOOO00000OO0 .read ()#line:254:content = result.read()
|
|
182
|
+
O0O0O0O0O0OOOOOOO =re .search ("fatal",OOOO0O00O0OOOOOO0 )#line:255:fatal = re.search("fatal", content)
|
|
183
|
+
if O0O0O0O0O0OOOOOOO !=None :#line:256:if fatal != None:
|
|
184
|
+
return False #line:257:return False
|
|
185
|
+
else :#line:258:else:
|
|
186
|
+
return True #line:259:return True
|
|
187
|
+
def checkError (O0O0000OO0O0OO0OO ,OO0000O0OO0OOO000 ):#line:261:def checkError(result,keywords):
|
|
188
|
+
OOO00OO00O0OOOO0O =re .search (OO0000O0OO0OOO000 ,O0O0000OO0O0OO0OO )#line:262:flag = re.search(keywords, result)
|
|
189
|
+
if OOO00OO00O0OOOO0O ==None :#line:263:if flag == None :
|
|
190
|
+
return True #line:264:return True
|
|
191
|
+
else :#line:265:else:
|
|
192
|
+
return False #line:266:return False
|
|
193
|
+
def map_source_code (OOOO0OO0O00O00O0O ,O0O0OO0O0000OOOO0 ,OOOO00O000O00O000 ):#line:269:def map_source_code(source_code_path_t,debug_code_path_t,reveal_path_t):
|
|
194
|
+
O00000OO00O0O00OO =O0O0OO0O0000OOOO0 .split (OOOO00O000O00O000 )#line:270:paths_t = debug_code_path_t.split(reveal_path_t)
|
|
195
|
+
OO0OO000O00OOO000 =O00000OO00O0O00OO [0 ]#line:271:debug_t = paths_t[0]
|
|
196
|
+
OOOOOOO0OOOO0000O =lldb .debugger .GetCommandInterpreter ()#line:272:interpreter = lldb.debugger.GetCommandInterpreter()
|
|
197
|
+
OO00O0OO0OO00OOO0 =lldb .SBCommandReturnObject ()#line:273:returnObject = lldb.SBCommandReturnObject()
|
|
198
|
+
OOOOOOO0OOOO0000O .HandleCommand ("settings append target.source-map "+OO0OO000O00OOO000 +" "+OOOO0OO0O00O00O0O ,OO00O0OO0OO00OOO0 )#line:274:interpreter.HandleCommand("settings append target.source-map "+ debug_t +" " + source_code_path_t,returnObject)
|
|
199
|
+
OOO0OO000OOOOO00O =OO00O0OO0OO00OOO0 .GetOutput ()#line:275:output = returnObject.GetOutput()
|
|
200
|
+
O0O0O0OOO0O0OOOOO =re .search ('error',OOO0OO000OOOOO00O )#line:276:flag = re.search('error', output)
|
|
201
|
+
if O0O0O0OOO0O0OOOOO ==None :#line:277:if flag == None :
|
|
202
|
+
return True #line:278:return True
|
|
203
|
+
else :#line:279:else:
|
|
204
|
+
return False #line:280:return False
|
|
205
|
+
def thread_step_inst (OOO0O00O0OOOOO0OO ):#line:283:def thread_step_inst(tmep):
|
|
206
|
+
pass #line:284:pass
|
|
207
|
+
def adjustStackFrame (O00O0O0O000000O00 ):#line:287:def adjustStackFrame(debugger):
|
|
208
|
+
O00O0O0O000000O00 .SetAsync (True )#line:298:debugger.SetAsync(True)
|
|
209
|
+
OO0OO0OO0000OO0O0 =O00O0O0O000000O00 .GetSelectedTarget ().GetProcess ().GetSelectedThread ()#line:303:thread = debugger.GetSelectedTarget().GetProcess().GetSelectedThread()
|
|
210
|
+
OO0OOO000O0O0O0OO =OO0OO0OO0000OO0O0 .GetSelectedFrame ().GetFrameID ()#line:304:frame_num = thread.GetSelectedFrame().GetFrameID()
|
|
211
|
+
OOOOOO0O0O0000OOO =lldb .debugger .GetCommandInterpreter ()#line:306:interpreter = lldb.debugger.GetCommandInterpreter()
|
|
212
|
+
OOOOO000O0O000000 =lldb .SBCommandReturnObject ()#line:307:returnObject = lldb.SBCommandReturnObject()
|
|
213
|
+
OOOOOO0O0O0000OOO .HandleCommand ("thread step-inst",OOOOO000O0O000000 )#line:311:interpreter.HandleCommand("thread step-inst",returnObject)
|
|
214
|
+
OOO0OOO0O0OO0OOO0 =OOOOO000O0O000000 .GetOutput ()#line:312:output = returnObject.GetOutput()
|
|
215
|
+
O0O0OO000O00000O0 =re .search ('error',OOO0OOO0O0OO0OOO0 )#line:313:result = re.search('error', output)
|
|
216
|
+
if O0O0OO000O00000O0 !=None :#line:314:if result != None:
|
|
217
|
+
return False #line:315:return False
|
|
218
|
+
time .sleep (0.5 )#line:317:time.sleep(0.5)
|
|
219
|
+
OOOOOO0O0O0000OOO .HandleCommand ("frame select "+str (OO0OOO000O0O0O0OO ),OOOOO000O0O000000 )#line:326:interpreter.HandleCommand("frame select "+str(frame_num),returnObject)
|
|
220
|
+
OOO0OOO0O0OO0OOO0 =OOOOO000O0O000000 .GetOutput ()#line:327:output = returnObject.GetOutput()
|
|
221
|
+
O0O0OO000O00000O0 =re .search ('error',OOO0OOO0O0OO0OOO0 )#line:328:result = re.search('error', output)
|
|
222
|
+
if O0O0OO000O00000O0 !=None :#line:330:if result != None:
|
|
223
|
+
return False #line:331:return False
|
|
224
|
+
def clean (OO0000OO00OO0O0O0 ):#line:333:def clean(filepath):
|
|
225
|
+
O000O00O00OO0O000 =os .listdir (OO0000OO00OO0O0O0 )#line:334:del_list = os.listdir(filepath)
|
|
226
|
+
for O0OO00O0OOOOOO0OO in O000O00O00OO0O000 :#line:335:for f in del_list:
|
|
227
|
+
O000OOO000OOOOO0O =os .path .join (OO0000OO00OO0O0O0 ,O0OO00O0OOOOOO0OO )#line:336:file_path = os.path.join(filepath, f)
|
|
228
|
+
if os .path .isfile (O000OOO000OOOOO0O ):#line:337:if os.path.isfile(file_path):
|
|
229
|
+
os .remove (O000OOO000OOOOO0O )#line:338:os.remove(file_path)
|
|
230
|
+
elif os .path .isdir (O000OOO000OOOOO0O ):#line:339:elif os.path.isdir(file_path):
|
|
231
|
+
shutil .rmtree (O000OOO000OOOOO0O )#line:340:shutil.rmtree(file_path)
|
|
232
|
+
pass #line:341:pass
|
|
233
|
+
def processing (O0OO0OO00000O0O00 ):#line:351:def processing(temp):
|
|
234
|
+
sys .stdout .write (O0OO0OO00000O0O00 )#line:352:sys.stdout.write(temp)
|
|
235
|
+
sys .stdout .flush ()#line:353:sys.stdout.flush()
|
|
236
|
+
def start (O000O0OO00000OO0O ,OO00O00OO0OO00O0O ):#line:355:def start(debugger,command):
|
|
237
|
+
processing ("processing")#line:357:processing("processing")
|
|
238
|
+
processing (".")#line:360:processing(".")
|
|
239
|
+
lz_log (1 )#line:363:lz_log(1)
|
|
240
|
+
O0000OO0OO0O0O00O =get_debug_file_path (OO00O00OO0OO00O0O )#line:364:debug_file_path = get_debug_file_path(command)
|
|
241
|
+
lz_log (O0000OO0OO0O0O00O )#line:365:lz_log(debug_file_path)
|
|
242
|
+
if O0000OO0OO0O0O00O ==None or len (O0000OO0OO0O0O00O )==0 :#line:366:if debug_file_path == None or len(debug_file_path) == 0:
|
|
243
|
+
lz_error (1 )#line:367:lz_error(1)
|
|
244
|
+
return #line:368:return
|
|
245
|
+
processing (".")#line:373:processing(".")
|
|
246
|
+
lz_log (2 )#line:374:lz_log(2)
|
|
247
|
+
O000OO000000O00OO =get_inis_info (O0000OO0OO0O0O00O )#line:375:project_info = get_inis_info(debug_file_path)
|
|
248
|
+
lz_log (O000OO000000O00OO )#line:376:lz_log(project_info)
|
|
249
|
+
if O000OO000000O00OO [0 ]==None or O000OO000000O00OO [1 ]==None :#line:377:if project_info[0] == None or project_info[1] == None:
|
|
250
|
+
lz_error (2 )#line:378:lz_error(2)
|
|
251
|
+
return #line:379:return
|
|
252
|
+
processing (".")#line:383:processing(".")
|
|
253
|
+
lz_log (3 )#line:384:lz_log(3)
|
|
254
|
+
O00O0000OO00O0OO0 =download_git_source_code (O000OO000000O00OO [0 ],O000OO000000O00OO [1 ])#line:385:source_code_path = download_git_source_code(project_info[0],project_info[1])
|
|
255
|
+
lz_log (O00O0000OO00O0OO0 )#line:386:lz_log(source_code_path)
|
|
256
|
+
if O00O0000OO00O0OO0 ==None or len (O00O0000OO00O0OO0 )==0 :#line:387:if source_code_path == None or len(source_code_path) == 0:
|
|
257
|
+
lz_error (3 )#line:388:lz_error(3)
|
|
258
|
+
return #line:389:return
|
|
259
|
+
processing (".")#line:393:processing(".")
|
|
260
|
+
lz_log (4 )#line:394:lz_log(4)
|
|
261
|
+
OO0O00OO0OOO0O00O =change_source_code_commit (O00O0000OO00O0OO0 )#line:395:isSuccess = change_source_code_commit(source_code_path)
|
|
262
|
+
lz_log (OO0O00OO0OOO0O00O )#line:396:lz_log(isSuccess)
|
|
263
|
+
if OO0O00OO0OOO0O00O ==False :#line:397:if isSuccess == False:
|
|
264
|
+
lz_error (4 )#line:398:lz_error(4)
|
|
265
|
+
return #line:399:return
|
|
266
|
+
processing (".")#line:403:processing(".")
|
|
267
|
+
lz_log (5 )#line:404:lz_log(5)
|
|
268
|
+
OO0O00OO0OOO0O00O =map_source_code (O00O0000OO00O0OO0 ,O0000OO0OO0O0O00O ,O000OO000000O00OO [0 ])#line:405:isSuccess = map_source_code(source_code_path,debug_file_path,project_info[0])
|
|
269
|
+
lz_log (OO0O00OO0OOO0O00O )#line:406:lz_log(isSuccess)
|
|
270
|
+
if OO0O00OO0OOO0O00O ==False :#line:407:if isSuccess == False:
|
|
271
|
+
lz_error (5 )#line:408:lz_error(5)
|
|
272
|
+
return #line:409:return
|
|
273
|
+
print (".")#line:413:print(".")
|
|
274
|
+
lz_log (6 )#line:414:lz_log(6)
|
|
275
|
+
OO0O00OO0OOO0O00O =adjustStackFrame (O000O0OO00000OO0O )#line:415:isSuccess = adjustStackFrame(debugger)
|
|
276
|
+
lz_log (OO0O00OO0OOO0O00O )#line:416:lz_log(isSuccess)
|
|
277
|
+
if OO0O00OO0OOO0O00O ==False :#line:417:if isSuccess == False:
|
|
278
|
+
lz_error (6 )#line:418:lz_error(6)
|
|
279
|
+
return #line:419:return
|
|
280
|
+
def help ():#line:422:def help():
|
|
281
|
+
print ("Usage:")#line:424:print("Usage:")
|
|
282
|
+
print (" isource memory_address eg:isource 0x8badf00d")#line:425:print(" isource memory_address eg:isource 0x8badf00d")
|
|
283
|
+
print ("Commands:")#line:427:print("Commands:")
|
|
284
|
+
print (" + help command help")#line:428:print(" + help command help")
|
|
285
|
+
print (" + clean clean cache")#line:429:print(" + clean clean cache")
|
|
286
|
+
pass #line:430:pass
|
|
287
|
+
def helloworld (O0O0OO0O0OO0O0O0O ,OO0O0OOO00000OOOO ,OOOO0000O0OOO0O00 ,OO0O0OO0OOO0000OO ):#line:433:def helloworld(debugger, command, result, internal_dict):
|
|
288
|
+
if OO0O0OOO00000OOOO ==None or OO0O0OOO00000OOOO =='-h':#line:435:if command == None or command == '-h':
|
|
289
|
+
help ()#line:436:help()
|
|
290
|
+
elif OO0O0OOO00000OOOO =='-c':#line:437:elif command == '-c':
|
|
291
|
+
clean (source_code_dir )#line:438:clean(source_code_dir)
|
|
292
|
+
elif re .match ('0x.*[a-z0-9]',OO0O0OOO00000OOOO )!=None :#line:439:elif re.match('0x.*[a-z0-9]', command) != None :
|
|
293
|
+
start (O0O0OO0O0OO0O0O0O ,OO0O0OOO00000OOOO )#line:440:start(debugger,command)
|
|
294
|
+
else :#line:441:else:
|
|
295
|
+
print ('error: '+OO0O0OOO00000OOOO +' is not a valid command.')#line:442:print('error: ' + command +' is not a valid command.')
|
|
296
|
+
help ()#line:443:help()
|
|
297
|
+
def __OOOOO0OO0000O00O0 (O0O00O0000O0O0O0O ,OO00O00OO00O0OO00 ):#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
|
+
O0O00O0000O0O0O0O .HandleCommand ("command script add -f isource_lldb.helloworld isource")#line:454:debugger.HandleCommand("command script add -f isource_lldb.helloworld isource")
|
|
301
|
+
|
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.2.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ningyuan
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-06-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: An plugin of LLDB.
|
|
14
14
|
email:
|
|
@@ -18,7 +18,7 @@ extensions: []
|
|
|
18
18
|
extra_rdoc_files: []
|
|
19
19
|
files:
|
|
20
20
|
- lib/rubygems_plugin.rb
|
|
21
|
-
- lib/setup
|
|
21
|
+
- lib/setup
|
|
22
22
|
homepage: https://github.com/Jeremi-LZ/isource_lldb
|
|
23
23
|
licenses:
|
|
24
24
|
- MIT
|
data/lib/setup.i
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
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
|
-
|