hilda 3.4.3__py3-none-any.whl → 3.5.1__py3-none-any.whl
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.
- hilda/_version.py +2 -2
- hilda/objective_c_class.py +26 -5
- hilda/objective_c_symbol.py +2 -1
- {hilda-3.4.3.dist-info → hilda-3.5.1.dist-info}/METADATA +1 -1
- {hilda-3.4.3.dist-info → hilda-3.5.1.dist-info}/RECORD +9 -9
- {hilda-3.4.3.dist-info → hilda-3.5.1.dist-info}/WHEEL +0 -0
- {hilda-3.4.3.dist-info → hilda-3.5.1.dist-info}/entry_points.txt +0 -0
- {hilda-3.4.3.dist-info → hilda-3.5.1.dist-info}/licenses/LICENSE +0 -0
- {hilda-3.4.3.dist-info → hilda-3.5.1.dist-info}/top_level.txt +0 -0
hilda/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '3.
|
|
32
|
-
__version_tuple__ = version_tuple = (3,
|
|
31
|
+
__version__ = version = '3.5.1'
|
|
32
|
+
__version_tuple__ = version_tuple = (3, 5, 1)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
hilda/objective_c_class.py
CHANGED
|
@@ -55,11 +55,13 @@ class Method:
|
|
|
55
55
|
return_type: str = field(compare=False)
|
|
56
56
|
is_class: bool = field(compare=False)
|
|
57
57
|
args_types: list = field(compare=False)
|
|
58
|
+
class_name: str = field(compare=False)
|
|
58
59
|
|
|
59
60
|
@staticmethod
|
|
60
|
-
def from_data(data: dict, client):
|
|
61
|
+
def from_data(class_name: str, data: dict, client) -> 'Method':
|
|
61
62
|
"""
|
|
62
63
|
Create Method object from raw data.
|
|
64
|
+
:param class_name: ObjC class name
|
|
63
65
|
:param data: Data as loaded from get_objectivec_symbol_data.m.
|
|
64
66
|
:param hilda.hilda_client.HildaClient client: Hilda client.
|
|
65
67
|
"""
|
|
@@ -71,14 +73,31 @@ class Method:
|
|
|
71
73
|
type_=data['type'],
|
|
72
74
|
return_type=decode_type(data['return_type']),
|
|
73
75
|
is_class=data['is_class'],
|
|
74
|
-
args_types=list(map(decode_type, data['args_types']))
|
|
76
|
+
args_types=list(map(decode_type, data['args_types'])),
|
|
77
|
+
class_name=class_name,
|
|
75
78
|
)
|
|
76
79
|
|
|
77
80
|
def set_implementation(self, new_imp: int):
|
|
78
81
|
self.client.symbols.method_setImplementation(self.address, new_imp)
|
|
79
82
|
self.imp = self.client.symbol(new_imp)
|
|
80
83
|
|
|
81
|
-
def
|
|
84
|
+
def monitor(self, **args) -> None:
|
|
85
|
+
"""
|
|
86
|
+
Perform monitor on method's IMP.
|
|
87
|
+
See monitor command for more details.
|
|
88
|
+
:param args: given arguments for monitor command
|
|
89
|
+
"""
|
|
90
|
+
self.client.symbol(self.imp).monitor(**args)
|
|
91
|
+
|
|
92
|
+
def bp(self, **args) -> None:
|
|
93
|
+
"""
|
|
94
|
+
Place a breakpoint on method's IMP.
|
|
95
|
+
See bp command for more details.
|
|
96
|
+
:param args: given arguments for bp command
|
|
97
|
+
"""
|
|
98
|
+
self.client.symbol(self.imp).bp(**args)
|
|
99
|
+
|
|
100
|
+
def __str__(self) -> str:
|
|
82
101
|
if ':' in self.name:
|
|
83
102
|
args_names = self.name.split(':')
|
|
84
103
|
name = ' '.join(['{}:({})'.format(*arg) for arg in zip(args_names, self.args_types[2:])])
|
|
@@ -125,7 +144,9 @@ class MethodList(UserList):
|
|
|
125
144
|
:param args: given arguments for monitor command
|
|
126
145
|
"""
|
|
127
146
|
for method in self.data:
|
|
128
|
-
|
|
147
|
+
method_kwargs = kwargs.copy()
|
|
148
|
+
method_kwargs['name'] = f'{"+" if method.is_class else "-"}[{method.class_name} {method.name}]'
|
|
149
|
+
method.imp.monitor(**method_kwargs)
|
|
129
150
|
|
|
130
151
|
# Filters
|
|
131
152
|
|
|
@@ -316,7 +337,7 @@ class Class:
|
|
|
316
337
|
Property(name=prop['name'], attributes=convert_encoded_property_attributes(prop['attributes']))
|
|
317
338
|
for prop in data['properties']
|
|
318
339
|
]
|
|
319
|
-
self.methods = MethodList(self.name, [Method.from_data(method, self._client) for method in data['methods']])
|
|
340
|
+
self.methods = MethodList(self.name, [Method.from_data(self.name, method, self._client) for method in data['methods']])
|
|
320
341
|
|
|
321
342
|
def __dir__(self):
|
|
322
343
|
result = set()
|
hilda/objective_c_symbol.py
CHANGED
|
@@ -69,7 +69,8 @@ class ObjectiveCSymbol(Symbol):
|
|
|
69
69
|
data['address'] = data['class_address']
|
|
70
70
|
data['super'] = data['class_super']
|
|
71
71
|
self.class_ = Class(self._client, self._client.symbol(data['class_address']), data)
|
|
72
|
-
self.methods = MethodList(
|
|
72
|
+
self.methods = MethodList(
|
|
73
|
+
self.class_.name, [Method.from_data(self.class_.name, method, self._client) for method in data['methods']])
|
|
73
74
|
|
|
74
75
|
def show(self, recursive: bool = False):
|
|
75
76
|
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hilda
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.5.1
|
|
4
4
|
Summary: LLDB wrapped and empowered by iPython's features
|
|
5
5
|
Author-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>, netanel cohen <netanelc305@protonmail.com>
|
|
6
6
|
Maintainer-email: doronz88 <doron88@gmail.com>, matan <matan1008@gmail.com>, netanel cohen <netanelc305@protonmail.com>
|
|
@@ -3,7 +3,7 @@ gifs/ui.png,sha256=iaRwNZ9qVWUkUe2TJb_6VPsTu--7HrElA2duWiyZ-Oc,131
|
|
|
3
3
|
gifs/xpc_print_message.gif,sha256=i5S8Y9bJm9n-NtOipFTAC8_jUR4uZCM4sOap_ccJX0k,939935
|
|
4
4
|
hilda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
hilda/__main__.py,sha256=KWRqvukK4wraxCMtvH5nO25mFXLO5aWXa7z_VfAtbO8,90
|
|
6
|
-
hilda/_version.py,sha256=
|
|
6
|
+
hilda/_version.py,sha256=OUyWq5_cZUcy6HDJkryVG2pqqVIDlVDP3ruxJFuZ2yo,704
|
|
7
7
|
hilda/breakpoints.py,sha256=EVeY589ZIz1DwW3kGn-MpvjVrma1ANAjWz4DdRW8T4c,20025
|
|
8
8
|
hilda/cli.py,sha256=PCjrI7GrERIrZCODJYmPt6eyl-nPYZviTS8fBG3oIjM,3618
|
|
9
9
|
hilda/common.py,sha256=El-ih7cvCv9PJ5OWb1jkCbh4GuaRD6gqlrFC5gyY-TE,498
|
|
@@ -13,8 +13,8 @@ hilda/hilda_client.py,sha256=TZCUGCATh8x8yDROke2Yr3Xx7OqfzsyWrDH6EkmLyfk,37169
|
|
|
13
13
|
hilda/launch_lldb.py,sha256=n9q_o70Nd04d8CNY4xUw8QDXNpsjX6tIwx1V7FWPkAs,8098
|
|
14
14
|
hilda/lldb_entrypoint.py,sha256=vTiClzfiTtjorlxEfIsI-W657KEGobx74qDhaZ8nPhM,1007
|
|
15
15
|
hilda/lldb_importer.py,sha256=TCGpAWwiBuyNRsbgcYawiqm35t8XQLCJwoOfEqyBeik,526
|
|
16
|
-
hilda/objective_c_class.py,sha256=
|
|
17
|
-
hilda/objective_c_symbol.py,sha256=
|
|
16
|
+
hilda/objective_c_class.py,sha256=L-L3F9XL1w5SnEduBuqes5nGJ-PirM6H72-0K34Tfw4,14436
|
|
17
|
+
hilda/objective_c_symbol.py,sha256=IMtzoa9QDk7AFjYuurIqCd65F9f0MCaw1gMGk6MSAMo,8061
|
|
18
18
|
hilda/registers.py,sha256=-9kk1MuKnWlJ0Z8zZ2RPV9nGRDtX1GXhCSkEvfnCktA,848
|
|
19
19
|
hilda/symbol.py,sha256=QZilOrnc7TdexrZKZamY-9PKxt_G2dKEEFtQTBrUjMs,8859
|
|
20
20
|
hilda/symbols.py,sha256=49LqMa4R4Gdw2IKrxDtJwxzEuYPIu2xjj-KvFPxFmhI,22970
|
|
@@ -49,9 +49,9 @@ hilda/snippets/macho/macho_load_commands.py,sha256=rlYHiPGUMpjpTkhI89twarufx7W88
|
|
|
49
49
|
hilda/ui/colors.json,sha256=f-ITquY3IInQreviTy23JfmxfJrGM1_MivACf1GKGqM,262
|
|
50
50
|
hilda/ui/ui_manager.py,sha256=BmzI1sBx0PYCQDlB9Al7wsTEAMJxaJ7NW0DS4C7g5-0,2265
|
|
51
51
|
hilda/ui/views.py,sha256=bzClOgKirKYs6nhsNRXpkGNIg3oIOmFb659GLWrlTdo,7792
|
|
52
|
-
hilda-3.
|
|
53
|
-
hilda-3.
|
|
54
|
-
hilda-3.
|
|
55
|
-
hilda-3.
|
|
56
|
-
hilda-3.
|
|
57
|
-
hilda-3.
|
|
52
|
+
hilda-3.5.1.dist-info/licenses/LICENSE,sha256=M-LVJ0AFAYB82eueyl8brh-QLPe-iLNVgbCi79-3TDo,1078
|
|
53
|
+
hilda-3.5.1.dist-info/METADATA,sha256=1ScYiWEKsxiUzR-YoMByxL3k5-T8yAETSssd4WQBdeY,21695
|
|
54
|
+
hilda-3.5.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
55
|
+
hilda-3.5.1.dist-info/entry_points.txt,sha256=9n3O3j6V3XnVR_GcFqCWNgRAbalfukTSW2WvghsLVmA,46
|
|
56
|
+
hilda-3.5.1.dist-info/top_level.txt,sha256=TVD7l1WkE1noT866YqPFhiQnjYCYZM5Xz54v_3EYpnI,11
|
|
57
|
+
hilda-3.5.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|