hilda 3.4.3__tar.gz → 3.5.1__tar.gz

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 (79) hide show
  1. {hilda-3.4.3 → hilda-3.5.1}/PKG-INFO +1 -1
  2. {hilda-3.4.3 → hilda-3.5.1}/hilda/_version.py +3 -3
  3. {hilda-3.4.3 → hilda-3.5.1}/hilda/objective_c_class.py +26 -5
  4. {hilda-3.4.3 → hilda-3.5.1}/hilda/objective_c_symbol.py +2 -1
  5. {hilda-3.4.3 → hilda-3.5.1}/hilda.egg-info/PKG-INFO +1 -1
  6. {hilda-3.4.3 → hilda-3.5.1}/.github/workflows/python-app.yml +0 -0
  7. {hilda-3.4.3 → hilda-3.5.1}/.github/workflows/python-publish.yml +0 -0
  8. {hilda-3.4.3 → hilda-3.5.1}/.gitignore +0 -0
  9. {hilda-3.4.3 → hilda-3.5.1}/.pre-commit-config.yaml +0 -0
  10. {hilda-3.4.3 → hilda-3.5.1}/LICENSE +0 -0
  11. {hilda-3.4.3 → hilda-3.5.1}/README.md +0 -0
  12. {hilda-3.4.3 → hilda-3.5.1}/gifs/.gitattributes +0 -0
  13. {hilda-3.4.3 → hilda-3.5.1}/gifs/ui.png +0 -0
  14. {hilda-3.4.3 → hilda-3.5.1}/gifs/xpc_print_message.gif +0 -0
  15. {hilda-3.4.3 → hilda-3.5.1}/hilda/__init__.py +0 -0
  16. {hilda-3.4.3 → hilda-3.5.1}/hilda/__main__.py +0 -0
  17. {hilda-3.4.3 → hilda-3.5.1}/hilda/breakpoints.py +0 -0
  18. {hilda-3.4.3 → hilda-3.5.1}/hilda/cli.py +0 -0
  19. {hilda-3.4.3 → hilda-3.5.1}/hilda/common.py +0 -0
  20. {hilda-3.4.3 → hilda-3.5.1}/hilda/decorators.py +0 -0
  21. {hilda-3.4.3 → hilda-3.5.1}/hilda/exceptions.py +0 -0
  22. {hilda-3.4.3 → hilda-3.5.1}/hilda/hilda_client.py +0 -0
  23. {hilda-3.4.3 → hilda-3.5.1}/hilda/ipython_extensions/events.py +0 -0
  24. {hilda-3.4.3 → hilda-3.5.1}/hilda/ipython_extensions/keybindings.py +0 -0
  25. {hilda-3.4.3 → hilda-3.5.1}/hilda/ipython_extensions/magics.py +0 -0
  26. {hilda-3.4.3 → hilda-3.5.1}/hilda/launch_lldb.py +0 -0
  27. {hilda-3.4.3 → hilda-3.5.1}/hilda/lldb_entrypoint.py +0 -0
  28. {hilda-3.4.3 → hilda-3.5.1}/hilda/lldb_importer.py +0 -0
  29. {hilda-3.4.3 → hilda-3.5.1}/hilda/objective_c/from_ns_to_json.m +0 -0
  30. {hilda-3.4.3 → hilda-3.5.1}/hilda/objective_c/get_objectivec_class_by_module.m +0 -0
  31. {hilda-3.4.3 → hilda-3.5.1}/hilda/objective_c/get_objectivec_class_description.m +0 -0
  32. {hilda-3.4.3 → hilda-3.5.1}/hilda/objective_c/get_objectivec_symbol_data.m +0 -0
  33. {hilda-3.4.3 → hilda-3.5.1}/hilda/objective_c/lsof.m +0 -0
  34. {hilda-3.4.3 → hilda-3.5.1}/hilda/objective_c/to_ns_from_json.m +0 -0
  35. {hilda-3.4.3 → hilda-3.5.1}/hilda/registers.py +0 -0
  36. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/__init__.py +0 -0
  37. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/boringssl.py +0 -0
  38. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/collections.py +0 -0
  39. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/dyld.py +0 -0
  40. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/fs_utils.py +0 -0
  41. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/libmalloc.py +0 -0
  42. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/mach/CFRunLoopServiceMachPort_hooks.py +0 -0
  43. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/mach/__init__.py +0 -0
  44. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/macho/__init__.py +0 -0
  45. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/macho/all_image_infos.py +0 -0
  46. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/macho/apple_version.py +0 -0
  47. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/macho/image_info.py +0 -0
  48. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/macho/macho.py +0 -0
  49. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/macho/macho_load_commands.py +0 -0
  50. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/remotepairingd.py +0 -0
  51. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/syslog.py +0 -0
  52. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/uuid.py +0 -0
  53. {hilda-3.4.3 → hilda-3.5.1}/hilda/snippets/xpc.py +0 -0
  54. {hilda-3.4.3 → hilda-3.5.1}/hilda/symbol.py +0 -0
  55. {hilda-3.4.3 → hilda-3.5.1}/hilda/symbols.py +0 -0
  56. {hilda-3.4.3 → hilda-3.5.1}/hilda/ui/colors.json +0 -0
  57. {hilda-3.4.3 → hilda-3.5.1}/hilda/ui/ui_manager.py +0 -0
  58. {hilda-3.4.3 → hilda-3.5.1}/hilda/ui/views.py +0 -0
  59. {hilda-3.4.3 → hilda-3.5.1}/hilda/watchpoints.py +0 -0
  60. {hilda-3.4.3 → hilda-3.5.1}/hilda.egg-info/SOURCES.txt +0 -0
  61. {hilda-3.4.3 → hilda-3.5.1}/hilda.egg-info/dependency_links.txt +0 -0
  62. {hilda-3.4.3 → hilda-3.5.1}/hilda.egg-info/entry_points.txt +0 -0
  63. {hilda-3.4.3 → hilda-3.5.1}/hilda.egg-info/requires.txt +0 -0
  64. {hilda-3.4.3 → hilda-3.5.1}/hilda.egg-info/top_level.txt +0 -0
  65. {hilda-3.4.3 → hilda-3.5.1}/pyproject.toml +0 -0
  66. {hilda-3.4.3 → hilda-3.5.1}/requirements.txt +0 -0
  67. {hilda-3.4.3 → hilda-3.5.1}/setup.cfg +0 -0
  68. {hilda-3.4.3 → hilda-3.5.1}/tests/__init__.py +0 -0
  69. {hilda-3.4.3 → hilda-3.5.1}/tests/conftest.py +0 -0
  70. {hilda-3.4.3 → hilda-3.5.1}/tests/test_hilda_client/test_from_ns.py +0 -0
  71. {hilda-3.4.3 → hilda-3.5.1}/tests/test_hilda_client/test_hilda_client.py +0 -0
  72. {hilda-3.4.3 → hilda-3.5.1}/tests/test_hilda_client/test_monitor.py +0 -0
  73. {hilda-3.4.3 → hilda-3.5.1}/tests/test_hilda_client/test_ns.py +0 -0
  74. {hilda-3.4.3 → hilda-3.5.1}/tests/test_hilda_client/test_registers.py +0 -0
  75. {hilda-3.4.3 → hilda-3.5.1}/tests/test_snippets/test_xpc.py +0 -0
  76. {hilda-3.4.3 → hilda-3.5.1}/tests/test_symbols/test_objective_c_class.py +0 -0
  77. {hilda-3.4.3 → hilda-3.5.1}/tests/test_symbols/test_objective_c_symbol.py +0 -0
  78. {hilda-3.4.3 → hilda-3.5.1}/tests/test_symbols/test_symbol.py +0 -0
  79. {hilda-3.4.3 → hilda-3.5.1}/tests/test_symbols/test_symbol_list.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hilda
3
- Version: 3.4.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>
@@ -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.4.3'
32
- __version_tuple__ = version_tuple = (3, 4, 3)
31
+ __version__ = version = '3.5.1'
32
+ __version_tuple__ = version_tuple = (3, 5, 1)
33
33
 
34
- __commit_id__ = commit_id = 'g52635181b'
34
+ __commit_id__ = commit_id = 'gfe40f81cf'
@@ -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 __str__(self):
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
- method.imp.monitor(**kwargs)
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()
@@ -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(self.class_.name, [Method.from_data(method, self._client) for method in data['methods']])
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.4.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>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes