isource_lldb 0.3.2 → 0.3.9

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/setup +349 -249
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e6e176eaf216555ccbfeb76c6d7873c1e04d95ec5d5db51b3398676d9ab90b3
4
- data.tar.gz: 4f9e61abfe4c98f6fa239225cbc107fec6c441d540f9649d6359c8f0f58a25bb
3
+ metadata.gz: d8f80de7a0d52b42510a7313f2c43d5981aa6cf4fae5c57ec345908d92f5493b
4
+ data.tar.gz: e88167669177090aa5d408bd28116e035c45ad097cbb56abb7bda888261d4daf
5
5
  SHA512:
6
- metadata.gz: 7a03f833930a24ec5a567fc4a1f2e6df46c0430be99badbacefca6cdeb469aaa69db1a2fef1d42b423fd50558bc1847cf1b5d363667128ec0e8a16ec78c3ffce
7
- data.tar.gz: 49c1478d42451671b97ce517f7a7b48ce11c28c948f4995cab0aa80035d1dd82c41e7c0e6801274321514badcdc6ece6421228d729a4e3545b4f3ad627ed7e92
6
+ metadata.gz: ef499e4f36a3af3cdbbc31dbcfe8a19dbed011af25b9272ad154cfb80bbdad0dd90038a543f6a71165e4579acf35bc48b3aa754c04f6fbca3b4e7e88bd6f5036
7
+ data.tar.gz: 451a4fa849dbed5f0b093b47e5fd7c1295f4f4a06e930b2c7b72aedceeeb6d9f384d8f0cf314f925517da0d9ea5ec7579837097140909e5696641012b22ffbff
data/lib/setup CHANGED
@@ -16,287 +16,387 @@ drrr_job_inis_dir =source_lldb_dir +"/drrr_job_inis"#line:19
16
16
  drrr_job_inis_dir_modules =drrr_job_inis_dir +"/modules"#line:20
17
17
  drrr_job_inis_addr ='ssh://git@gitlab.qiyi.domain:10022/qytools/drrr_job_inis.git'#line:21
18
18
  project_info_cache =source_lldb_dir +"/project_info_cache.txt"#line:22
19
- def lz_error (O0OO0000O0000O000 ):#line:24
20
- print ("internal error code : "+str (O0OO0000O0000O000 ))#line:25
21
- def lz_log (O00O00O000OOO0O00 ):#line:27
19
+ def lz_error (O00OO0OO0O00OOOO0 ):#line:24
20
+ print ("internal error code : "+str (O00OO0OO0O00OOOO0 ))#line:25
21
+ def lz_log (O0O00000000O00O0O ):#line:27
22
22
  pass #line:30
23
23
  def manage_source_dir ():#line:33
24
- OOO0O0O00O0OO00OO =os .path .exists (source_lldb_dir )#line:34
25
- if not OOO0O0O00O0OO00OO :#line:35
24
+ O00O0OOO00OO0O0O0 =os .path .exists (source_lldb_dir )#line:34
25
+ if not O00O0OOO00OO0O0O0 :#line:35
26
26
  os .makedirs (source_lldb_dir )#line:36
27
27
  os .makedirs (source_code_dir )#line:37
28
28
  else :#line:38
29
- OO0000OO0O00O00OO =os .path .exists (source_code_dir )#line:39
30
- if not OO0000OO0O00O00OO :#line:40
29
+ OO0OO0OOOOOO0O00O =os .path .exists (source_code_dir )#line:39
30
+ if not OO0OO0OOOOOO0O00O :#line:40
31
31
  os .makedirs (source_code_dir )#line:41
32
32
  def create_cache_file ():#line:44
33
- OO0OOO0OO0O000OOO =os .path .exists (project_info_cache )#line:45
34
- if not OO0OOO0OO0O000OOO :#line:46
35
- OOO0O0OOO0OO00000 =open (project_info_cache ,'w')#line:47
36
- OOO0O0OOO0OO00000 .close ()#line:48
37
- def write_cache_file (O0O0O0O0O00OOO000 ):#line:50
38
- if O0O0O0O0O00OOO000 [0 ]!=None and O0O0O0O0O00OOO000 [1 ]!=None and O0O0O0O0O00OOO000 [2 ]!=None and O0O0O0O0O00OOO000 [3 ]!=None :#line:51
39
- OO0000O0000OO0OO0 =list (O0O0O0O0O00OOO000 )#line:52
40
- O000OO000O00O0O00 ='---'.join (OO0000O0000OO0OO0 )#line:53
41
- OOO000000O0O00O00 =open (project_info_cache ,'a+')#line:54
42
- OOO000000O0O00O00 .write (O000OO000O00O0O00 +"\n")#line:55
43
- OOO000000O0O00O00 .close ()#line:56
44
- def read_cache_file (OOO0000OOOO00O00O ):#line:58
45
- O0OO0O0OO0O00000O =None #line:59
46
- with open (project_info_cache ,'r',encoding ='utf-8')as O00OO00O0OOOO0OO0 :#line:60
47
- OO00OO0O0O000OOOO =O00OO00O0OOOO0OO0 .readlines ()#line:61
48
- for O00OOOO0O0OOOOO00 in range (0 ,len (OO00OO0O0O000OOOO )):#line:62
49
- OO0000OO0OOOO000O =re .search (OOO0000OOOO00O00O ,OO00OO0O0O000OOOO [O00OOOO0O0OOOOO00 ])#line:63
50
- if OO0000OO0OOOO000O !=None :#line:64
51
- OO00O0OOOOO0OO000 =OO00OO0O0O000OOOO [O00OOOO0O0OOOOO00 ]#line:65
52
- O0OO0O000OOO0OO0O =OO00O0OOOOO0OO000 .split ('---')#line:66
53
- O0OO0O0OO0O00000O =tuple (O0OO0O000OOO0OO0O )#line:67
33
+ OO00OOOO0O0OO0OOO =os .path .exists (project_info_cache )#line:45
34
+ if not OO00OOOO0O0OO0OOO :#line:46
35
+ O0OOOO00O0000OO0O =open (project_info_cache ,'w')#line:47
36
+ O0OOOO00O0000OO0O .close ()#line:48
37
+ def write_cache_file (O00O0OO00O0OO000O ):#line:50
38
+ if O00O0OO00O0OO000O [0 ]!=None and O00O0OO00O0OO000O [1 ]!=None and O00O0OO00O0OO000O [2 ]!=None and O00O0OO00O0OO000O [3 ]!=None :#line:51
39
+ O0000O0OO00000O0O =list (O00O0OO00O0OO000O )#line:52
40
+ O0O0000OO0OO0O0O0 ='---'.join (O0000O0OO00000O0O )#line:53
41
+ OOO0O00O000O0000O =open (project_info_cache ,'a+')#line:54
42
+ OOO0O00O000O0000O .write (O0O0000OO0OO0O0O0 +"\n")#line:55
43
+ OOO0O00O000O0000O .close ()#line:56
44
+ def read_cache_file (O00OOO0000O0O00OO ):#line:58
45
+ OOO00O00OO0OO0000 =None #line:59
46
+ with open (project_info_cache ,'r',encoding ='utf-8')as O00000OO00OOOO000 :#line:60
47
+ O00O00OOOO0O00O0O =O00000OO00OOOO000 .readlines ()#line:61
48
+ for OO0OOOOO0OOOO0OO0 in range (0 ,len (O00O00OOOO0O00O0O )):#line:62
49
+ O0OOOO000OOO00O0O =re .search (O00OOO0000O0O00OO ,O00O00OOOO0O00O0O [OO0OOOOO0OOOO0OO0 ])#line:63
50
+ if O0OOOO000OOO00O0O !=None :#line:64
51
+ O0O0O00OO00O000OO =O00O00OOOO0O00O0O [OO0OOOOO0OOOO0OO0 ]#line:65
52
+ O0OOO0000OO00OOOO =O0O0O00OO00O000OO .split ('---')#line:66
53
+ OOO00O00OO0OO0000 =tuple (O0OOO0000OO00OOOO )#line:67
54
54
  break #line:68
55
- return O0OO0O0OO0O00000O #line:69
55
+ return OOO00O00OO0OO0000 #line:69
56
56
  def manage_job_inis ():#line:72
57
- OOO0O0O00000O000O =os .path .exists (drrr_job_inis_dir )#line:73
58
- if OOO0O0O00000O000O ==True :#line:74
59
- O0OO0OOOOOOOO0O0O ="cd "+drrr_job_inis_dir +"; git pull"#line:75
60
- O0000OO000O00O00O =os .popen (O0OO0OOOOOOOO0O0O )#line:76
61
- OO000OOO0O00OO00O =O0000OO000O00O00O .read ()#line:77
62
- O000OO00O0000O00O =re .search ("fatal",OO000OOO0O00OO00O )#line:78
63
- if O000OO00O0000O00O !=None :#line:79
57
+ OOOO0OOOOOOO0OOO0 =os .path .exists (drrr_job_inis_dir )#line:73
58
+ if OOOO0OOOOOOO0OOO0 ==True :#line:74
59
+ OO00OO000O0O00000 ="cd "+drrr_job_inis_dir +"; git pull"#line:75
60
+ O0OOO0O0OO0000OOO =os .popen (OO00OO000O0O00000 )#line:76
61
+ OO00OO00O00O00O0O =O0OOO0O0OO0000OOO .read ()#line:77
62
+ OOO0OOOO0OO0O0OO0 =re .search ("fatal",OO00OO00O00O00O0O )#line:78
63
+ if OOO0OOOO0OO0O0OO0 !=None :#line:79
64
64
  lz_error (0 )#line:80
65
65
  else :#line:81
66
- O0O00OO0OO0O0OO00 ="git clone "+drrr_job_inis_addr +" "+drrr_job_inis_dir #line:82
67
- O0000OO000O00O00O =os .popen (O0O00OO0OO0O0OO00 )#line:83
68
- OO000OOO0O00OO00O =O0000OO000O00O00O .read ()#line:84
69
- O000OO00O0000O00O =re .search ("fatal",OO000OOO0O00OO00O )#line:85
70
- if O000OO00O0000O00O !=None :#line:86
66
+ OO0O0O00000O0O0OO ="git clone "+drrr_job_inis_addr +" "+drrr_job_inis_dir #line:82
67
+ O0OOO0O0OO0000OOO =os .popen (OO0O0O00000O0O0OO )#line:83
68
+ OO00OO00O00O00O0O =O0OOO0O0OO0000OOO .read ()#line:84
69
+ OOO0OOOO0OO0O0OO0 =re .search ("fatal",OO00OO00O00O00O0O )#line:85
70
+ if OOO0OOOO0OO0O0OO0 !=None :#line:86
71
71
  lz_error (0 )#line:87
72
- def get_debug_file_path (OO0OO000O0OOO0O00 ):#line:90
73
- O00OO00O0O0O000OO =lldb .debugger .GetCommandInterpreter ()#line:91
74
- OO00O00OO0OO00OOO =lldb .SBCommandReturnObject ()#line:92
75
- O00OO00O0O0O000OO .HandleCommand ('image lookup -v --address '+OO0OO000O0OOO0O00 ,OO00O00OO0OO00OOO )#line:93
76
- OOOOO0O0OOO0OO0O0 =OO00O00OO0OO00OOO .GetOutput ()#line:94
77
- O00O0O0OO0OO000OO =""#line:96
78
- O0OO00OO00000O00O =re .search ('error',OOOOO0O0OOO0OO0O0 )#line:97
79
- if O0OO00OO00000O00O !=None :#line:98
80
- return O00O0O0OO0OO000OO #line:99
81
- OO00OOOOOO000000O =OOOOO0O0OOO0OO0O0 .split ("\n")#line:102
82
- if len (OO00OOOOOO000000O )>3 :#line:103
83
- OOO0OOO0O000OOOO0 =OO00OOOOOO000000O [3 ].strip ()#line:104
84
- O0000OOO000O0OO0O =OOO0OOO0O000OOOO0 .split (",")#line:106
85
- if len (O0000OOO000O0OO0O )>1 :#line:107
86
- O00000OOO0OO000OO =O0000OOO000O0OO0O [1 ].strip ()#line:108
87
- OOO00O0OO00OO0OO0 =O00000OOO0OO000OO .split ("=")#line:110
88
- if len (OOO00O0OO00OO0OO0 )>1 :#line:111
89
- OO0O00OOO0O0O0O0O =OOO00O0OO00OO0OO0 [1 ].strip ()#line:112
90
- O00O0O0OO0OO000OO =OO0O00OOO0O0O0O0O .replace ('\"','')#line:114
91
- return O00O0O0OO0OO000OO #line:116
92
- def get_inis_info (O00OO0O00O0O0OO00 ):#line:119
93
- O000OO0OOOO00OO0O =None #line:121
94
- O0O0OOO00OO0O0O00 =None #line:122
95
- O0OO00O00000000OO =None #line:123
96
- O00O0O0OO0O00OO00 =None #line:124
97
- O0O00OOOOO00OO0OO =O00OO0O00O0O0OO00 .split ("/")#line:127
98
- for O0OOOO00OOOO000O0 in range (0 ,len (O0O00OOOOO00OO0OO )):#line:128
99
- if O0O00OOOOO00OO0OO [O0OOOO00OOOO000O0 ]=="MODULE_DIR":#line:129
100
- O0O0OOO00OO0O0O00 =O0O00OOOOO00OO0OO [O0OOOO00OOOO000O0 +1 ]#line:130
101
- O000OO0OOOO00OO0O =O0O00OOOOO00OO0OO [O0OOOO00OOOO000O0 +1 ]#line:131
72
+ def get_debug_file_path (OO00OO0000OOO0OO0 ):#line:90
73
+ OO0OO0OO000O00OO0 =lldb .debugger .GetCommandInterpreter ()#line:91
74
+ O0OOOO0O0O0O0O000 =lldb .SBCommandReturnObject ()#line:92
75
+ OO0OO0OO000O00OO0 .HandleCommand ('image lookup -v --address '+OO00OO0000OOO0OO0 ,O0OOOO0O0O0O0O000 )#line:93
76
+ OO00O0O0OO00OOOO0 =O0OOOO0O0O0O0O000 .GetOutput ()#line:94
77
+ O00O0OOO00OOO0000 =""#line:96
78
+ O000OOO00OO0OO00O =re .search ('error',OO00O0O0OO00OOOO0 )#line:97
79
+ if O000OOO00OO0OO00O !=None :#line:98
80
+ return O00O0OOO00OOO0000 #line:99
81
+ O0OOOO00O0OOOO000 =OO00O0O0OO00OOOO0 .split ("\n")#line:102
82
+ if len (O0OOOO00O0OOOO000 )>3 :#line:103
83
+ OOOOO00O0O00OOOOO =O0OOOO00O0OOOO000 [3 ].strip ()#line:104
84
+ O00000OOOOO000000 =OOOOO00O0O00OOOOO .split (",")#line:106
85
+ if len (O00000OOOOO000000 )>1 :#line:107
86
+ O0O00O0OOOO000O00 =O00000OOOOO000000 [1 ].strip ()#line:108
87
+ OOO0OO0OO00O0000O =O0O00O0OOOO000O00 .split ("=")#line:110
88
+ if len (OOO0OO0OO00O0000O )>1 :#line:111
89
+ O000OO0O00O00OO0O =OOO0OO0OO00O0000O [1 ].strip ()#line:112
90
+ O00O0OOO00OOO0000 =O000OO0O00O00OO0O .replace ('\"','')#line:114
91
+ return O00O0OOO00OOO0000 #line:116
92
+ def get_inis_info (O0O0OO0O0O0OO0000 ):#line:119
93
+ O0OO00OO0OO0OOOO0 =None #line:121
94
+ O0O00OOOOOOO0OOOO =None #line:122
95
+ OO00O0O0OO0OOO0O0 =None #line:123
96
+ OOO00OOO000O0OOO0 =None #line:124
97
+ O0OO0OOO000O0O00O =O0O0OO0O0O0OO0000 .split ("/")#line:127
98
+ for OOO0OO000O00000O0 in range (0 ,len (O0OO0OOO000O0O00O )):#line:128
99
+ if O0OO0OOO000O0O00O [OOO0OO000O00000O0 ]=="MODULE_DIR":#line:129
100
+ O0O00OOOOOOO0OOOO =O0OO0OOO000O0O00O [OOO0OO000O00000O0 +1 ]#line:130
101
+ O0OO00OO0OO0OOOO0 =O0OO0OOO000O0O00O [OOO0OO000O00000O0 +1 ]#line:131
102
102
  break #line:132
103
- if O0O0OOO00OO0O0O00 !=None and len (O0O0OOO00OO0O0O00 )>0 :#line:139
104
- OOO000OOOO000OOO0 =os .listdir (drrr_job_inis_dir_modules )#line:140
105
- for O0OOOO00OOOO000O0 in range (0 ,len (OOO000OOOO000OOO0 )):#line:141
106
- OO00OO0O00O00O0O0 =drrr_job_inis_dir_modules +"/"+OOO000OOOO000OOO0 [O0OOOO00OOOO000O0 ]#line:142
107
- with open (OO00OO0O00O00O0O0 ,'r',encoding ='utf-8')as OO00OO0000OO0O00O :#line:144
108
- OO000O000O0O00OO0 =OO00OO0000OO0O00O .readlines ()#line:145
109
- for O0OOOO00OOOO000O0 in range (0 ,len (OO000O000O0O00OO0 )):#line:146
110
- OOO000O0OO000O00O =re .search (O0O0OOO00OO0O0O00 ,OO000O000O0O00OO0 [O0OOOO00OOOO000O0 ])#line:147
111
- if OOO000O0OO000O00O !=None :#line:148
112
- O0OO00O00000000OO =OOO000OOOO000OOO0 [O0OOOO00OOOO000O0 ]#line:149
113
- O0O0OO0O0OO0O0000 =O0OOOO00OOOO000O0 -5 if O0OOOO00OOOO000O0 >5 else 0 #line:150
114
- OOO0O00OOOOO0000O =O0OOOO00OOOO000O0 +5 if O0OOOO00OOOO000O0 +5 <len (OO000O000O0O00OO0 )else len (OO000O000O0O00OO0 )#line:151
115
- for O000OOOOOOO000OO0 in range (O0O0OO0O0OO0O0000 ,OOO0O00OOOOO0000O ):#line:152
116
- O0O00000OO0O00OO0 =re .findall ("ssh://git@gitlab.qiyi.domain:[^/]+?/.*?"+O000OO0OOOO00OO0O +"*?[^0~9]?.git",OO000O000O0O00OO0 [O000OOOOOOO000OO0 ])#line:153
117
- if len (O0O00000OO0O00OO0 )>0 :#line:154
118
- O00O0O0OO0O00OO00 =O0O00000OO0O00OO0 [0 ]#line:155
103
+ if O0O00OOOOOOO0OOOO !=None and len (O0O00OOOOOOO0OOOO )>0 :#line:139
104
+ OOOO00OOOOOO0O000 =os .listdir (drrr_job_inis_dir_modules )#line:140
105
+ for OOO0OO000O00000O0 in range (0 ,len (OOOO00OOOOOO0O000 )):#line:141
106
+ OO00000OOOOO00O00 =drrr_job_inis_dir_modules +"/"+OOOO00OOOOOO0O000 [OOO0OO000O00000O0 ]#line:142
107
+ with open (OO00000OOOOO00O00 ,'r',encoding ='utf-8')as OO000OO0OO0O0O0O0 :#line:144
108
+ OOO0O0O0OOO000000 =OO000OO0OO0O0O0O0 .readlines ()#line:145
109
+ for OOO0OO000O00000O0 in range (0 ,len (OOO0O0O0OOO000000 )):#line:146
110
+ O0OOOOOOO00OO000O =re .search (O0O00OOOOOOO0OOOO ,OOO0O0O0OOO000000 [OOO0OO000O00000O0 ])#line:147
111
+ if O0OOOOOOO00OO000O !=None :#line:148
112
+ OO00O0O0OO0OOO0O0 =OOOO00OOOOOO0O000 [OOO0OO000O00000O0 ]#line:149
113
+ OOO0O0000000O0OOO =OOO0OO000O00000O0 -5 if OOO0OO000O00000O0 >5 else 0 #line:150
114
+ OO0OO0O00OOO0O00O =OOO0OO000O00000O0 +5 if OOO0OO000O00000O0 +5 <len (OOO0O0O0OOO000000 )else len (OOO0O0O0OOO000000 )#line:151
115
+ for O000O00O0OOOOOOOO in range (OOO0O0000000O0OOO ,OO0OO0O00OOO0O00O ):#line:152
116
+ OOOO0O000000O00OO =re .findall ("ssh://git@gitlab.qiyi.domain:[^/]+?/.*?"+O0OO00OO0OO0OOOO0 +"*?[^0~9]?.git",OOO0O0O0OOO000000 [O000O00O0OOOOOOOO ])#line:153
117
+ if len (OOOO0O000000O00OO )>0 :#line:154
118
+ OOO00OOO000O0OOO0 =OOOO0O000000O00OO [0 ]#line:155
119
119
  break #line:156
120
- if O00O0O0OO0O00OO00 !=None :#line:157
120
+ if OOO00OOO000O0OOO0 !=None :#line:157
121
121
  break #line:158
122
- if O00O0O0OO0O00OO00 !=None :#line:159
122
+ if OOO00OOO000O0OOO0 !=None :#line:159
123
123
  break #line:160
124
- return (O000OO0OOOO00OO0O ,O00O0O0OO0O00OO00 )#line:179
125
- def download_git_source_code (O00O0000OO00OO000 ,O0O0000OO0O0OO0OO ):#line:183
126
- O0OOO0000OOOO00O0 =source_code_dir +"/"+O00O0000OO00OO000 #line:184
127
- OO000000O0O00OO00 =os .path .exists (O0OOO0000OOOO00O0 )#line:185
128
- if not OO000000O0O00OO00 :#line:187
129
- os .makedirs (O0OOO0000OOOO00O0 )#line:188
130
- O0OO0OOO000OO0OOO ="git clone "+O0O0000OO0O0OO0OO +" "+O0OOO0000OOOO00O0 #line:189
131
- O000OO00O0OOOOO0O =os .popen (O0OO0OOO000OO0OOO )#line:190
132
- O0OO0OOO0O0O000OO =O000OO00O0OOOOO0O .read ()#line:191
133
- O00000O000OOOO00O =re .search ("fatal",O0OO0OOO0O0O000OO )#line:192
134
- if O00000O000OOOO00O !=None :#line:193
124
+ return (O0OO00OO0OO0OOOO0 ,OOO00OOO000O0OOO0 )#line:179
125
+ def download_git_source_code (OOOOO0O0O0O00O000 ,OOO0OO0OOOO0OOOOO ):#line:183
126
+ O0OOOO00O0OOOOOOO =source_code_dir +"/"+OOOOO0O0O0O00O000 #line:184
127
+ O0000O000O000O0OO =os .path .exists (O0OOOO00O0OOOOOOO )#line:185
128
+ if not O0000O000O000O0OO :#line:187
129
+ os .makedirs (O0OOOO00O0OOOOOOO )#line:188
130
+ OO00O0O0OO0OO0OOO ="git clone "+OOO0OO0OOOO0OOOOO +" "+O0OOOO00O0OOOOOOO #line:189
131
+ O0OOOOOO0OO00O0OO =os .popen (OO00O0O0OO0OO0OOO )#line:190
132
+ OOOO00O0O0OO0OOO0 =O0OOOOOO0OO00O0OO .read ()#line:191
133
+ OOOO00O00O00O00O0 =re .search ("fatal",OOOO00O0O0OO0OOO0 )#line:192
134
+ if OOOO00O00O00O00O0 !=None :#line:193
135
135
  return ""#line:194
136
136
  else :#line:195
137
- O000000O0OOO0OO00 ="cd "+O0OOO0000OOOO00O0 +"; git pull"#line:196
138
- O000OO00O0OOOOO0O =os .popen (O000000O0OOO0OO00 )#line:197
139
- O0OO0OOO0O0O000OO =O000OO00O0OOOOO0O .read ()#line:198
140
- O00000O000OOOO00O =re .search ("fatal",O0OO0OOO0O0O000OO )#line:199
141
- if O00000O000OOOO00O !=None :#line:200
137
+ O0O0O0O000O0000OO ="cd "+O0OOOO00O0OOOOOOO +"; git pull"#line:196
138
+ O0OOOOOO0OO00O0OO =os .popen (O0O0O0O000O0000OO )#line:197
139
+ OOOO00O0O0OO0OOO0 =O0OOOOOO0OO00O0OO .read ()#line:198
140
+ OOOO00O00O00O00O0 =re .search ("fatal",OOOO00O0O0OO0OOO0 )#line:199
141
+ if OOOO00O00O00O00O0 !=None :#line:200
142
142
  return ""#line:201
143
- return O0OOO0000OOOO00O0 #line:203
143
+ return O0OOOO00O0OOOOOOO #line:203
144
144
  def get_update_time ():#line:206
145
- OOO000OO00OO0000O =user_dir +"/.cocoapods/repos/qiyi-podspecs/"#line:208
146
- OOO00O000OO0OOO00 =os .path .getmtime (OOO000OO00OO0000O )#line:209
147
- OOOO0OOOO00O0OOO0 =time .localtime (OOO00O000OO0OOO00 )#line:210
148
- O00O0O00O00OOO000 =time .strftime ("%m %d %H:%M:%S %Y",OOOO0OOOO00O0OOO0 )#line:213
149
- O0OOOO000O00O0OO0 =O00O0O00O00OOO000 .split (" ")#line:214
150
- OO0O000O0OO0O0OO0 =O0OOOO000O00O0OO0 [0 ]#line:215
151
- if OO0O000O0OO0O0OO0 =='1':#line:217
152
- OO0O000O0OO0O0OO0 ='Jan'#line:218
153
- if OO0O000O0OO0O0OO0 =='2':#line:219
154
- OO0O000O0OO0O0OO0 ='Feb'#line:220
155
- if OO0O000O0OO0O0OO0 =='3':#line:221
156
- OO0O000O0OO0O0OO0 ='Mar'#line:222
157
- if OO0O000O0OO0O0OO0 =='4':#line:223
158
- OO0O000O0OO0O0OO0 ='Apr'#line:224
159
- if OO0O000O0OO0O0OO0 =='5':#line:225
160
- OO0O000O0OO0O0OO0 ='May'#line:226
161
- if OO0O000O0OO0O0OO0 =='6':#line:227
162
- OO0O000O0OO0O0OO0 ='Jun'#line:228
163
- if OO0O000O0OO0O0OO0 =='7':#line:229
164
- OO0O000O0OO0O0OO0 ='Jul'#line:230
165
- if OO0O000O0OO0O0OO0 =='8':#line:231
166
- OO0O000O0OO0O0OO0 ='Aug'#line:232
167
- if OO0O000O0OO0O0OO0 =='9':#line:233
168
- OO0O000O0OO0O0OO0 ='Sep'#line:234
169
- if OO0O000O0OO0O0OO0 =='10':#line:235
170
- OO0O000O0OO0O0OO0 ='Oct'#line:236
171
- if OO0O000O0OO0O0OO0 =='11':#line:237
172
- OO0O000O0OO0O0OO0 ='Nov'#line:238
173
- if OO0O000O0OO0O0OO0 =='12':#line:239
174
- OO0O000O0OO0O0OO0 ='Dec'#line:240
175
- O0OOOO000O00O0OO0 [0 ]=OO0O000O0OO0O0OO0 #line:242
176
- return ' '.join (O0OOOO000O00O0OO0 )#line:244
177
- def change_source_code_commit (OO0000OOO0000O0OO ):#line:247
178
- O0O0OO0OOOOOO0O00 =get_update_time ()#line:250
179
- OOO00OO00OO00O0O0 ="cd "+OO0000OOO0000O0OO +"; git rev-list -n 1 --before=\""+O0O0OO0OOOOOO0O00 +"\" master"#line:252
180
- OO0O00O0OO0OO00OO =os .popen (OOO00OO00OO00O0O0 )#line:253
181
- OO00OO00O0OOO0OOO =OO0O00O0OO0OO00OO .read ()#line:254
182
- OO0OOOO00OO000O00 =re .search ("fatal",OO00OO00O0OOO0OOO )#line:255
183
- if OO0OOOO00OO000O00 !=None :#line:256
145
+ OOO0OO00O0OO0OOO0 =user_dir +"/.cocoapods/repos/qiyi-podspecs/"#line:208
146
+ OOOO000000OO0OOOO =os .path .getmtime (OOO0OO00O0OO0OOO0 )#line:209
147
+ OO000OO00O0OOO0OO =time .localtime (OOOO000000OO0OOOO )#line:210
148
+ O000OOO000OOOOO00 =time .strftime ("%m %d %H:%M:%S %Y",OO000OO00O0OOO0OO )#line:213
149
+ OOO0O0O0O00O0O0OO =O000OOO000OOOOO00 .split (" ")#line:214
150
+ OO00000OO000OO0OO =OOO0O0O0O00O0O0OO [0 ]#line:215
151
+ if OO00000OO000OO0OO =='1':#line:217
152
+ OO00000OO000OO0OO ='Jan'#line:218
153
+ if OO00000OO000OO0OO =='2':#line:219
154
+ OO00000OO000OO0OO ='Feb'#line:220
155
+ if OO00000OO000OO0OO =='3':#line:221
156
+ OO00000OO000OO0OO ='Mar'#line:222
157
+ if OO00000OO000OO0OO =='4':#line:223
158
+ OO00000OO000OO0OO ='Apr'#line:224
159
+ if OO00000OO000OO0OO =='5':#line:225
160
+ OO00000OO000OO0OO ='May'#line:226
161
+ if OO00000OO000OO0OO =='6':#line:227
162
+ OO00000OO000OO0OO ='Jun'#line:228
163
+ if OO00000OO000OO0OO =='7':#line:229
164
+ OO00000OO000OO0OO ='Jul'#line:230
165
+ if OO00000OO000OO0OO =='8':#line:231
166
+ OO00000OO000OO0OO ='Aug'#line:232
167
+ if OO00000OO000OO0OO =='9':#line:233
168
+ OO00000OO000OO0OO ='Sep'#line:234
169
+ if OO00000OO000OO0OO =='10':#line:235
170
+ OO00000OO000OO0OO ='Oct'#line:236
171
+ if OO00000OO000OO0OO =='11':#line:237
172
+ OO00000OO000OO0OO ='Nov'#line:238
173
+ if OO00000OO000OO0OO =='12':#line:239
174
+ OO00000OO000OO0OO ='Dec'#line:240
175
+ OOO0O0O0O00O0O0OO [0 ]=OO00000OO000OO0OO #line:242
176
+ return ' '.join (OOO0O0O0O00O0O0OO )#line:244
177
+ def change_source_code_commit (OO000O0O00000O00O ):#line:247
178
+ OO00O0OOO000000O0 =get_update_time ()#line:250
179
+ OOOOO0O0O000000OO ="cd "+OO000O0O00000O00O +"; git rev-list -n 1 --before=\""+OO00O0OOO000000O0 +"\" master"#line:252
180
+ OOOO0000OO0O0OO00 =os .popen (OOOOO0O0O000000OO )#line:253
181
+ O00OOO00000OOOO0O =OOOO0000OO0O0OO00 .read ()#line:254
182
+ OOO0O0O0O000OOO00 =re .search ("fatal",O00OOO00000OOOO0O )#line:255
183
+ if OOO0O0O0O000OOO00 !=None :#line:256
184
184
  return False #line:257
185
185
  else :#line:258
186
186
  return True #line:259
187
- def checkError (O0OO000OOO0000O0O ,OOOO0O000OO000OOO ):#line:261
188
- OO0OO0OO00O00O00O =re .search (OOOO0O000OO000OOO ,O0OO000OOO0000O0O )#line:262
189
- if OO0OO0OO00O00O00O ==None :#line:263
187
+ def checkError (OO0OOO0OOO00OO000 ,O0000O0O00OOO00OO ):#line:261
188
+ OO00OO0O0OO000O0O =re .search (O0000O0O00OOO00OO ,OO0OOO0OOO00OO000 )#line:262
189
+ if OO00OO0O0OO000O0O ==None :#line:263
190
190
  return True #line:264
191
191
  else :#line:265
192
192
  return False #line:266
193
- def map_source_code (O0OO00O0OOOO0OOOO ,O000OOOOO0000OOO0 ,OOO0000O00O000O00 ):#line:269
194
- O00O000OOO00OO0OO =O000OOOOO0000OOO0 .split (OOO0000O00O000O00 )#line:270
195
- OOOO0O0O0O0OO0O0O =O00O000OOO00OO0OO [0 ]#line:271
196
- O00O00O0O0O0OO0O0 =lldb .debugger .GetCommandInterpreter ()#line:272
197
- O000O0OOOOOO00OOO =lldb .SBCommandReturnObject ()#line:273
198
- O00O00O0O0O0OO0O0 .HandleCommand ("settings append target.source-map "+OOOO0O0O0O0OO0O0O +" "+O0OO00O0OOOO0OOOO ,O000O0OOOOOO00OOO )#line:274
199
- O00O00O0O0O0OO00O =O000O0OOOOOO00OOO .GetOutput ()#line:275
200
- OO0OO0OOO0O0O0OO0 =re .search ('error',O00O00O0O0O0OO00O )#line:276
201
- if OO0OO0OOO0O0O0OO0 ==None :#line:277
193
+ def map_source_code (OO0OOOO0OO0OOO000 ,O0O00O000OO000O00 ,OO0O00O000OO0OO0O ):#line:269
194
+ O000OOOO0O00O00OO =O0O00O000OO000O00 .split (OO0O00O000OO0OO0O )#line:270
195
+ OO00O0O0O0000OO0O =O000OOOO0O00O00OO [0 ]#line:271
196
+ OOO0O0OO0OOO000O0 =lldb .debugger .GetCommandInterpreter ()#line:272
197
+ OOOOO00OO000OO0O0 =lldb .SBCommandReturnObject ()#line:273
198
+ OOO0O0OO0OOO000O0 .HandleCommand ("settings append target.source-map "+OO00O0O0O0000OO0O +" "+OO0OOOO0OO0OOO000 ,OOOOO00OO000OO0O0 )#line:274
199
+ OO00000OOOOO000O0 =OOOOO00OO000OO0O0 .GetOutput ()#line:275
200
+ OOO0O00O0O00OO0O0 =re .search ('error',OO00000OOOOO000O0 )#line:276
201
+ if OOO0O00O0O00OO0O0 ==None :#line:277
202
202
  return True #line:278
203
203
  else :#line:279
204
204
  return False #line:280
205
- def thread_step_inst (O0000OO0O0OO000O0 ):#line:283
205
+ def thread_step_inst (O00OO00000O00OOO0 ):#line:283
206
206
  pass #line:284
207
- def adjustStackFrame (O00OO0000000O0O00 ):#line:287
208
- O00OO0000000O0O00 .SetAsync (True )#line:298
209
- OOO0O0OOOOOOO0OOO =O00OO0000000O0O00 .GetSelectedTarget ().GetProcess ().GetSelectedThread ()#line:303
210
- OO0OOO0O00OO0O0OO =OOO0O0OOOOOOO0OOO .GetSelectedFrame ().GetFrameID ()#line:304
211
- OO0OOOO0O00OOOOOO =lldb .debugger .GetCommandInterpreter ()#line:306
212
- OOO000OOOOO0OO0OO =lldb .SBCommandReturnObject ()#line:307
213
- OO0OOOO0O00OOOOOO .HandleCommand ("thread step-inst",OOO000OOOOO0OO0OO )#line:311
214
- OO0OO00OOO0O0000O =OOO000OOOOO0OO0OO .GetOutput ()#line:312
215
- OOOOO00O0OO00OOO0 =re .search ('error',OO0OO00OOO0O0000O )#line:313
216
- if OOOOO00O0OO00OOO0 !=None :#line:314
207
+ def adjustStackFrame (O0OO000O00000O0OO ):#line:287
208
+ O0OO000O00000O0OO .SetAsync (True )#line:298
209
+ OO00O0OO0O0O0O0O0 =O0OO000O00000O0OO .GetSelectedTarget ().GetProcess ().GetSelectedThread ()#line:303
210
+ O000OO000O000O0OO =OO00O0OO0O0O0O0O0 .GetSelectedFrame ().GetFrameID ()#line:304
211
+ O00OO0O0OOOOOOO00 =lldb .debugger .GetCommandInterpreter ()#line:306
212
+ O00O0O00OO00O0OO0 =lldb .SBCommandReturnObject ()#line:307
213
+ O00OO0O0OOOOOOO00 .HandleCommand ("thread step-inst",O00O0O00OO00O0OO0 )#line:311
214
+ OO00OO0OOO0OOO000 =O00O0O00OO00O0OO0 .GetOutput ()#line:312
215
+ O0O0OO0OOOO0OO00O =re .search ('error',OO00OO0OOO0OOO000 )#line:313
216
+ if O0O0OO0OOOO0OO00O !=None :#line:314
217
217
  return False #line:315
218
218
  time .sleep (0.2 )#line:316
219
- OO0OOOO0O00OOOOOO .HandleCommand ("thread step-over",OOO000OOOOO0OO0OO )#line:317
219
+ O00OO0O0OOOOOOO00 .HandleCommand ("thread step-over",O00O0O00OO00O0OO0 )#line:317
220
220
  time .sleep (0.5 )#line:318
221
- OO0OOOO0O00OOOOOO .HandleCommand ("frame select "+str (OO0OOO0O00OO0O0OO ),OOO000OOOOO0OO0OO )#line:327
222
- OO0OO00OOO0O0000O =OOO000OOOOO0OO0OO .GetOutput ()#line:328
223
- OOOOO00O0OO00OOO0 =re .search ('error',OO0OO00OOO0O0000O )#line:329
224
- if OOOOO00O0OO00OOO0 !=None :#line:331
221
+ O00OO0O0OOOOOOO00 .HandleCommand ("frame select "+str (O000OO000O000O0OO ),O00O0O00OO00O0OO0 )#line:327
222
+ OO00OO0OOO0OOO000 =O00O0O00OO00O0OO0 .GetOutput ()#line:328
223
+ O0O0OO0OOOO0OO00O =re .search ('error',OO00OO0OOO0OOO000 )#line:329
224
+ if O0O0OO0OOOO0OO00O !=None :#line:331
225
225
  return False #line:332
226
- def clean (OO00O000000O00OOO ):#line:334
227
- O0O000000OOO00OOO =os .listdir (OO00O000000O00OOO )#line:335
228
- for O00OOO0O000O0OOOO in O0O000000OOO00OOO :#line:336
229
- O00O00OO0O0OOOOOO =os .path .join (OO00O000000O00OOO ,O00OOO0O000O0OOOO )#line:337
230
- if os .path .isfile (O00O00OO0O0OOOOOO ):#line:338
231
- os .remove (O00O00OO0O0OOOOOO )#line:339
232
- elif os .path .isdir (O00O00OO0O0OOOOOO ):#line:340
233
- shutil .rmtree (O00O00OO0O0OOOOOO )#line:341
226
+ def clean (O000000OO0OOOOO00 ):#line:334
227
+ OO0OOOO0O0O0O0O00 =os .listdir (O000000OO0OOOOO00 )#line:335
228
+ for OOOOO0O0O00OOO0OO in OO0OOOO0O0O0O0O00 :#line:336
229
+ O0OOO00000O0O0O00 =os .path .join (O000000OO0OOOOO00 ,OOOOO0O0O00OOO0OO )#line:337
230
+ if os .path .isfile (O0OOO00000O0O0O00 ):#line:338
231
+ os .remove (O0OOO00000O0O0O00 )#line:339
232
+ elif os .path .isdir (O0OOO00000O0O0O00 ):#line:340
233
+ shutil .rmtree (O0OOO00000O0O0O00 )#line:341
234
234
  pass #line:342
235
- def processing (OOO000OO0O0OO0O0O ):#line:352
236
- sys .stdout .write (OOO000OO0O0OO0O0O )#line:353
237
- sys .stdout .flush ()#line:354
238
- def start (O0OO00O00O00O0000 ,OOO0O0OO0OO0O0O00 ):#line:356
239
- processing ("processing")#line:358
240
- processing (".")#line:361
241
- lz_log (1 )#line:364
242
- OO00000000O00OOOO =get_debug_file_path (OOO0O0OO0OO0O0O00 )#line:365
243
- lz_log (OO00000000O00OOOO )#line:366
244
- if OO00000000O00OOOO ==None or len (OO00000000O00OOOO )==0 :#line:367
245
- lz_error (1 )#line:368
246
- return #line:369
247
- processing (".")#line:374
248
- lz_log (2 )#line:375
249
- O000OOOO0000OO000 =get_inis_info (OO00000000O00OOOO )#line:376
250
- lz_log (O000OOOO0000OO000 )#line:377
251
- if O000OOOO0000OO000 [0 ]==None or O000OOOO0000OO000 [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
- OO0000OO00OOOOO0O =download_git_source_code (O000OOOO0000OO000 [0 ],O000OOOO0000OO000 [1 ])#line:386
257
- lz_log (OO0000OO00OOOOO0O )#line:387
258
- if OO0000OO00OOOOO0O ==None or len (OO0000OO00OOOOO0O )==0 :#line:388
259
- lz_error (3 )#line:389
260
- return #line:390
261
- processing (".")#line:394
262
- lz_log (4 )#line:395
263
- OO0000000O000OO00 =change_source_code_commit (OO0000OO00OOOOO0O )#line:396
264
- lz_log (OO0000000O000OO00 )#line:397
265
- if OO0000000O000OO00 ==False :#line:398
266
- lz_error (4 )#line:399
267
- return #line:400
268
- processing (".")#line:404
269
- lz_log (5 )#line:405
270
- OO0000000O000OO00 =map_source_code (OO0000OO00OOOOO0O ,OO00000000O00OOOO ,O000OOOO0000OO000 [0 ])#line:406
271
- lz_log (OO0000000O000OO00 )#line:407
272
- if OO0000000O000OO00 ==False :#line:408
273
- lz_error (5 )#line:409
274
- return #line:410
275
- print (".")#line:414
276
- lz_log (6 )#line:415
277
- OO0000000O000OO00 =adjustStackFrame (O0OO00O00O00O0000 )#line:416
278
- lz_log (OO0000000O000OO00 )#line:417
279
- if OO0000000O000OO00 ==False :#line:418
280
- lz_error (6 )#line:419
281
- return #line:420
282
- def help ():#line:423
283
- print ("Usage:")#line:425
284
- print (" isource memory_address eg:isource 0x8badf00d")#line:426
285
- print ("Commands:")#line:428
286
- print (" + help command help")#line:429
287
- print (" + clean clean cache")#line:430
288
- pass #line:431
289
- def helloworld (OO0OO000O0OO0O000 ,O0OOOOO0O000OO000 ,OOO0OO0O0OOO00O00 ,OOO0OO00000OOO00O ):#line:434
290
- if O0OOOOO0O000OO000 ==None or O0OOOOO0O000OO000 =='-h':#line:436
291
- help ()#line:437
292
- elif O0OOOOO0O000OO000 =='-c':#line:438
293
- clean (source_code_dir )#line:439
294
- elif re .match ('0x.*[a-z0-9]',O0OOOOO0O000OO000 )!=None :#line:440
295
- start (OO0OO000O0OO0O000 ,O0OOOOO0O000OO000 )#line:441
296
- else :#line:442
297
- print ('error: '+O0OOOOO0O000OO000 +' is not a valid command.')#line:443
298
- help ()#line:444
299
- def __O0O000O00O00000OO (O0O00000O0000OOOO ,OO000OO0O0OOOO00O ):#line:447
300
- manage_source_dir ()#line:449
301
- manage_job_inis ()#line:453
302
- O0O00000O0000OOOO .HandleCommand ("command script add -f isource_lldb.helloworld isource")#line:455
235
+ def processing (OO00OO00O0OO0OO0O ):#line:344
236
+ sys .stdout .write (OO00OO00O0OO0OO0O )#line:345
237
+ sys .stdout .flush ()#line:346
238
+ def start (O00O000000O00OO0O ,OO00OO0OOO00O0O0O ):#line:348
239
+ processing ("processing")#line:350
240
+ processing (".")#line:353
241
+ lz_log (1 )#line:356
242
+ O0000O0O0O00O0O0O =get_debug_file_path (OO00OO0OOO00O0O0O )#line:357
243
+ lz_log (O0000O0O0O00O0O0O )#line:358
244
+ if O0000O0O0O00O0O0O ==None or len (O0000O0O0O00O0O0O )==0 :#line:359
245
+ lz_error (1 )#line:360
246
+ return #line:361
247
+ processing (".")#line:366
248
+ lz_log (2 )#line:367
249
+ OO00O000O000OO00O =get_inis_info (O0000O0O0O00O0O0O )#line:368
250
+ lz_log (OO00O000O000OO00O )#line:369
251
+ if OO00O000O000OO00O [0 ]==None or OO00O000O000OO00O [1 ]==None :#line:370
252
+ lz_error (2 )#line:371
253
+ return #line:372
254
+ processing (".")#line:376
255
+ lz_log (3 )#line:377
256
+ O0O0OOO00OO00OO00 =download_git_source_code (OO00O000O000OO00O [0 ],OO00O000O000OO00O [1 ])#line:378
257
+ lz_log (O0O0OOO00OO00OO00 )#line:379
258
+ if O0O0OOO00OO00OO00 ==None or len (O0O0OOO00OO00OO00 )==0 :#line:380
259
+ lz_error (3 )#line:381
260
+ return #line:382
261
+ processing (".")#line:386
262
+ lz_log (4 )#line:387
263
+ OOO00O000000O0000 =change_source_code_commit (O0O0OOO00OO00OO00 )#line:388
264
+ lz_log (OOO00O000000O0000 )#line:389
265
+ if OOO00O000000O0000 ==False :#line:390
266
+ lz_error (4 )#line:391
267
+ return #line:392
268
+ processing (".")#line:396
269
+ lz_log (5 )#line:397
270
+ OOO00O000000O0000 =map_source_code (O0O0OOO00OO00OO00 ,O0000O0O0O00O0O0O ,OO00O000O000OO00O [0 ])#line:398
271
+ lz_log (OOO00O000000O0000 )#line:399
272
+ if OOO00O000000O0000 ==False :#line:400
273
+ lz_error (5 )#line:401
274
+ return #line:402
275
+ print (".")#line:406
276
+ lz_log (6 )#line:407
277
+ OOO00O000000O0000 =adjustStackFrame (O00O000000O00OO0O )#line:408
278
+ lz_log (OOO00O000000O0000 )#line:409
279
+ if OOO00O000000O0000 ==False :#line:410
280
+ lz_error (6 )#line:411
281
+ return #line:412
282
+ def processingAnimation (O0O0O000OOO00O0O0 ):#line:414
283
+ sys .stdout .write (O0O0O000OOO00O0O0 )#line:415
284
+ sys .stdout .flush ()#line:416
285
+ for OO0OOO00OO0OO000O in range (5 ):#line:417
286
+ sys .stdout .write ('.')#line:418
287
+ sys .stdout .flush ()#line:419
288
+ time .sleep (0.5 )#line:420
289
+ def process (O0OOO0OO0OOO00O00 ,O0OO0OOOOOO000O00 ):#line:422
290
+ print ("")#line:423
291
+ processingAnimation ("Processing")#line:424
292
+ print ("")#line:425
293
+ print ("")#line:426
294
+ O0O00OO0000O000O0 =r'''
295
+ @import <dlfcn.h>;
296
+ @import <objc/runtime.h>;
297
+ @import Foundation;
298
+ unsigned int count;
299
+ const char **classes;
300
+ Dl_info info;
301
+
302
+ void *_mh_execute_header = __builtin_return_address(0);
303
+ dladdr(_mh_execute_header, &info);
304
+ classes = (const char **)objc_copyClassNamesForImage(info.dli_fname, &count);
305
+
306
+ NSInteger level = 0;//继承层级
307
+ NSInteger backLevel = 0;//继承层级
308
+ NSMutableDictionary * visited_class = [[NSMutableDictionary alloc]init];
309
+ NSMutableArray * class_stack = [[NSMutableArray alloc] init];
310
+ [class_stack addObject:@"'''+O0OO0OOOOOO000O00 +'''"];
311
+ BOOL isPrint = NO;
312
+ while (true) {
313
+
314
+ NSString * current_class = [class_stack firstObject];
315
+
316
+ if (current_class) {
317
+ if((BOOL)[[visited_class objectForKey:current_class] boolValue] == YES ) {
318
+
319
+ BOOL hasNewClass = NO;
320
+ for (int i = 0; i < count; i++) {
321
+
322
+ NSString *className = [NSString stringWithCString:classes[i] encoding:NSUTF8StringEncoding];
323
+ NSString *superName = (NSString*)NSStringFromClass((Class)class_getSuperclass(NSClassFromString(className)));
324
+
325
+ if ([superName isEqualToString:current_class] && (BOOL)[[visited_class objectForKey:className] boolValue] == NO) {
326
+ [class_stack insertObject:className atIndex:0];
327
+ hasNewClass = YES;
328
+ break;
329
+ }
330
+ }
331
+ if (hasNewClass == YES) {
332
+ level += 1;
333
+ } else {
334
+ [class_stack removeObjectAtIndex:0];
335
+ level -= 1;
336
+ backLevel += 1;
337
+ }
338
+
339
+ } else {
340
+
341
+ NSMutableString * separationSpace = [[NSMutableString alloc]init];
342
+ for (int i = 0; i < level; ++i) {
343
+ [separationSpace appendString:@" |"];
344
+ }
345
+
346
+ NSMutableString * backLevelSpace = [[NSMutableString alloc]init];
347
+ for (int i = 0; i < backLevel-1; ++i) {
348
+ [backLevelSpace appendString:@" |"];
349
+ }
350
+
351
+ backLevel = 0;
352
+
353
+ if (isPrint == YES) {
354
+ printf("|%s%s\\n",(char *)[[separationSpace copy] UTF8String],(char *)[[backLevelSpace copy] UTF8String]);
355
+ }
356
+ NSString * temp = (NSString*)NSStringFromClass((Class)class_getSuperclass(NSClassFromString(current_class)));
357
+ if (temp.length > 0) {
358
+ 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]);
359
+ } else {
360
+ printf("|----%s (L%s) \\n",(char *)[current_class UTF8String],(char *)[[NSString stringWithFormat:@"%ld",(long)level] UTF8String]);
361
+ }
362
+
363
+ isPrint = YES;
364
+ [visited_class setObject:@1 forKey:current_class];
365
+ }
366
+ } else {
367
+ break;
368
+ }
369
+ }
370
+ '''#line:503
371
+ OO00OOO0O00O0OOO0 =O0OOO0OO0OOO00O00 .GetCommandInterpreter ()#line:505
372
+ OO00OOO000OO000OO =lldb .SBCommandReturnObject ()#line:506
373
+ OO00OOO0O00O0OOO0 .HandleCommand ('expression -lobjc -O -- '+O0O00OO0000O000O0 ,OO00OOO000OO000OO )#line:508
374
+ O0OOO00O00OOOOOO0 =OO00OOO000OO000OO .GetOutput ()#line:509
375
+ OO0OO0OOOO0000O00 =re .search ('error',O0OOO00O00OOOOOO0 )#line:510
376
+ print (OO00OOO000OO000OO .GetError ())#line:511
377
+ def help ():#line:513
378
+ print ("Usage:")#line:515
379
+ print (" isource memory_address eg:isource 0x8badf00d")#line:516
380
+ print ("")#line:517
381
+ print (" isource class_name eg:isource NSObject")#line:518
382
+ print ("")#line:519
383
+ print ("Commands:")#line:521
384
+ print (" + help command help")#line:522
385
+ print (" + clean clean cache")#line:523
386
+ pass #line:524
387
+ def helloworld (O000000O000O00O00 ,OO0O00OO00000000O ,O0OO0OO0OO0OOOOOO ,O00O0OO000OO00000 ):#line:527
388
+ if OO0O00OO00000000O ==''or OO0O00OO00000000O =='-h':#line:529
389
+ help ()#line:530
390
+ elif OO0O00OO00000000O =='-c':#line:531
391
+ clean (source_code_dir )#line:532
392
+ elif re .match ('0x.*[a-z0-9]',OO0O00OO00000000O )!=None :#line:533
393
+ start (O000000O000O00O00 ,OO0O00OO00000000O )#line:534
394
+ elif re .match ('.*[a-z0-9]',OO0O00OO00000000O )!=None :#line:535
395
+ process (O000000O000O00O00 ,OO0O00OO00000000O )#line:536
396
+ else :#line:537
397
+ print ('error: '+OO0O00OO00000000O +' is not a valid command.')#line:538
398
+ help ()#line:539
399
+ def __OOOO0O0OOOO000O0O (OOO0OOO00O0OOO0O0 ,OO0OOO00OO0O0O000 ):#line:542
400
+ manage_source_dir ()#line:544
401
+ manage_job_inis ()#line:548
402
+ OOO0OOO00O0OOO0O0 .HandleCommand ("command script add -f isource_lldb.helloworld isource")#line:550
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isource_lldb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.9
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-28 00:00:00.000000000 Z
11
+ date: 2021-06-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: An plugin of LLDB.
14
14
  email: