File tree Expand file tree Collapse file tree 2 files changed +260
-0
lines changed
lldb/packages/Python/lldbsuite/test/macosx/load-kext Expand file tree Collapse file tree 2 files changed +260
-0
lines changed Original file line number Diff line number Diff line change
1
+ """
2
+ Test loading of a kext binary.
3
+ """
4
+
5
+ from __future__ import print_function
6
+
7
+ import shutil
8
+ import struct
9
+
10
+ import lldb
11
+ from lldbsuite .test .decorators import *
12
+ from lldbsuite .test .lldbtest import *
13
+ from lldbsuite .test import lldbutil
14
+
15
+
16
+ class LoadKextTestCase (TestBase ):
17
+ NO_DEBUG_INFO_TESTCASE = True
18
+
19
+ mydir = TestBase .compute_mydir (__file__ )
20
+
21
+ def setUp (self ):
22
+ TestBase .setUp (self )
23
+ #super(LoadKextTestCase, self).setUp()
24
+ #self._initial_platform = lldb.DBG.GetSelectedPlatform()
25
+
26
+ def test_load_kext (self ):
27
+ """Test that lldb can load a kext binary."""
28
+
29
+ # Create kext from YAML.
30
+ self .yaml2obj ("mykext.yaml" , self .getBuildArtifact ("mykext" ))
31
+
32
+ target = self .dbg .CreateTarget (self .getBuildArtifact ("mykext" ))
33
+
34
+ self .assertTrue (target .IsValid ())
35
+
36
+ self .assertEqual (target .GetNumModules (), 1 )
37
+ mod = target .GetModuleAtIndex (0 )
38
+ self .assertEqual (mod .GetFileSpec ().GetFilename (), "mykext" )
Original file line number Diff line number Diff line change
1
+ --- !mach-o
2
+ FileHeader :
3
+ magic : 0xFEEDFACF
4
+ cputype : 0x01000007
5
+ cpusubtype : 0x00000003
6
+ filetype : 0x0000000B
7
+ ncmds : 7
8
+ sizeofcmds : 520
9
+ flags : 0x00000085
10
+ reserved : 0x00000000
11
+ LoadCommands :
12
+ - cmd : LC_SEGMENT_64
13
+ cmdsize : 152
14
+ segname : __TEXT
15
+ vmaddr : 0
16
+ vmsize : 4096
17
+ fileoff : 0
18
+ filesize : 4096
19
+ maxprot : 7
20
+ initprot : 5
21
+ nsects : 1
22
+ flags : 0
23
+ Sections :
24
+ - sectname : __text
25
+ segname : __TEXT
26
+ addr : 0x0000000000000F60
27
+ size : 158
28
+ offset : 0x00000F60
29
+ align : 4
30
+ reloff : 0x00000000
31
+ nreloc : 0
32
+ flags : 0x80000400
33
+ reserved1 : 0x00000000
34
+ reserved2 : 0x00000000
35
+ reserved3 : 0x00000000
36
+ - cmd : LC_SEGMENT_64
37
+ cmdsize : 152
38
+ segname : __DATA
39
+ vmaddr : 4096
40
+ vmsize : 4096
41
+ fileoff : 4096
42
+ filesize : 4096
43
+ maxprot : 7
44
+ initprot : 3
45
+ nsects : 1
46
+ flags : 0
47
+ Sections :
48
+ - sectname : __data
49
+ segname : __DATA
50
+ addr : 0x0000000000001000
51
+ size : 220
52
+ offset : 0x00001000
53
+ align : 3
54
+ reloff : 0x00000000
55
+ nreloc : 0
56
+ flags : 0x00000000
57
+ reserved1 : 0x00000000
58
+ reserved2 : 0x00000000
59
+ reserved3 : 0x00000000
60
+ - cmd : LC_SEGMENT_64
61
+ cmdsize : 72
62
+ segname : __LINKEDIT
63
+ vmaddr : 8192
64
+ vmsize : 4096
65
+ fileoff : 8192
66
+ filesize : 800
67
+ maxprot : 7
68
+ initprot : 1
69
+ nsects : 0
70
+ flags : 0
71
+ - cmd : LC_SYMTAB
72
+ cmdsize : 24
73
+ symoff : 8224
74
+ nsyms : 19
75
+ stroff : 8528
76
+ strsize : 464
77
+ - cmd : LC_DYSYMTAB
78
+ cmdsize : 80
79
+ ilocalsym : 0
80
+ nlocalsym : 16
81
+ iextdefsym : 16
82
+ nextdefsym : 3
83
+ iundefsym : 19
84
+ nundefsym : 0
85
+ tocoff : 0
86
+ ntoc : 0
87
+ modtaboff : 0
88
+ nmodtab : 0
89
+ extrefsymoff : 0
90
+ nextrefsyms : 0
91
+ indirectsymoff : 0
92
+ nindirectsyms : 0
93
+ extreloff : 0
94
+ nextrel : 0
95
+ locreloff : 8192
96
+ nlocrel : 4
97
+ - cmd : LC_UUID
98
+ cmdsize : 24
99
+ uuid : 17A97B33-09B7-3195-9408-DBD965D578A5
100
+ - cmd : LC_SOURCE_VERSION
101
+ cmdsize : 16
102
+ version : 0
103
+ LinkEditData :
104
+ NameList :
105
+ - n_strx : 40
106
+ n_type : 0x64
107
+ n_sect : 0
108
+ n_desc : 0
109
+ n_value : 0
110
+ - n_strx : 141
111
+ n_type : 0x64
112
+ n_sect : 0
113
+ n_desc : 0
114
+ n_value : 0
115
+ - n_strx : 155
116
+ n_type : 0x66
117
+ n_sect : 3
118
+ n_desc : 1
119
+ n_value : 1543540349
120
+ - n_strx : 276
121
+ n_type : 0x20
122
+ n_sect : 0
123
+ n_desc : 0
124
+ n_value : 0
125
+ - n_strx : 287
126
+ n_type : 0x20
127
+ n_sect : 0
128
+ n_desc : 0
129
+ n_value : 0
130
+ - n_strx : 298
131
+ n_type : 0x20
132
+ n_sect : 0
133
+ n_desc : 0
134
+ n_value : 0
135
+ - n_strx : 309
136
+ n_type : 0x20
137
+ n_sect : 0
138
+ n_desc : 0
139
+ n_value : 0
140
+ - n_strx : 1
141
+ n_type : 0x64
142
+ n_sect : 1
143
+ n_desc : 0
144
+ n_value : 0
145
+ - n_strx : 325
146
+ n_type : 0x1E
147
+ n_sect : 1
148
+ n_desc : 0
149
+ n_value : 3992
150
+ - n_strx : 333
151
+ n_type : 0x1E
152
+ n_sect : 1
153
+ n_desc : 0
154
+ n_value : 4018
155
+ - n_strx : 361
156
+ n_type : 0x1E
157
+ n_sect : 1
158
+ n_desc : 0
159
+ n_value : 4035
160
+ - n_strx : 392
161
+ n_type : 0x1E
162
+ n_sect : 1
163
+ n_desc : 0
164
+ n_value : 4052
165
+ - n_strx : 417
166
+ n_type : 0x1E
167
+ n_sect : 1
168
+ n_desc : 0
169
+ n_value : 4068
170
+ - n_strx : 424
171
+ n_type : 0x1E
172
+ n_sect : 2
173
+ n_desc : 0
174
+ n_value : 4296
175
+ - n_strx : 435
176
+ n_type : 0x1E
177
+ n_sect : 2
178
+ n_desc : 0
179
+ n_value : 4304
180
+ - n_strx : 446
181
+ n_type : 0x1E
182
+ n_sect : 2
183
+ n_desc : 0
184
+ n_value : 4312
185
+ - n_strx : 2
186
+ n_type : 0x0F
187
+ n_sect : 2
188
+ n_desc : 0
189
+ n_value : 4096
190
+ - n_strx : 13
191
+ n_type : 0x0F
192
+ n_sect : 1
193
+ n_desc : 0
194
+ n_value : 3936
195
+ - n_strx : 27
196
+ n_type : 0x0F
197
+ n_sect : 1
198
+ n_desc : 0
199
+ n_value : 3968
200
+ StringTable :
201
+ - ' '
202
+ - _kmod_info
203
+ - _mykext_start
204
+ - _mykext_stop
205
+ - /tmp/mykext/build/mykext/Build/Intermediates.noindex/mykext.build/Debug/mykext.build/DerivedSources/
206
+ - mykext_info.c
207
+ - /tmp/mykext/build/mykext/Build/Intermediates.noindex/mykext.build/Debug/mykext.build/Objects-normal/x86_64/mykext_info.o
208
+ - _kmod_info
209
+ - __realmain
210
+ - __antimain
211
+ - __kext_apple_cc
212
+ - __start
213
+ - _OSKextGetCurrentIdentifier
214
+ - _OSKextGetCurrentVersionString
215
+ - _OSKextGetCurrentLoadTag
216
+ - __stop
217
+ - __realmain
218
+ - __antimain
219
+ - __kext_apple_cc
220
+ - ' '
221
+ - ' '
222
+ ...
You can’t perform that action at this time.
0 commit comments