hilda 2.0.12__tar.gz → 2.0.13__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 (77) hide show
  1. {hilda-2.0.12 → hilda-2.0.13}/PKG-INFO +1 -1
  2. {hilda-2.0.12 → hilda-2.0.13}/hilda/_version.py +2 -2
  3. {hilda-2.0.12 → hilda-2.0.13}/hilda/hilda_client.py +28 -9
  4. {hilda-2.0.12 → hilda-2.0.13}/hilda/symbol.py +2 -2
  5. {hilda-2.0.12 → hilda-2.0.13}/hilda.egg-info/PKG-INFO +1 -1
  6. {hilda-2.0.12 → hilda-2.0.13}/.github/workflows/python-app.yml +0 -0
  7. {hilda-2.0.12 → hilda-2.0.13}/.github/workflows/python-publish.yml +0 -0
  8. {hilda-2.0.12 → hilda-2.0.13}/.gitignore +0 -0
  9. {hilda-2.0.12 → hilda-2.0.13}/.pre-commit-config.yaml +0 -0
  10. {hilda-2.0.12 → hilda-2.0.13}/LICENSE +0 -0
  11. {hilda-2.0.12 → hilda-2.0.13}/README.md +0 -0
  12. {hilda-2.0.12 → hilda-2.0.13}/gifs/.gitattributes +0 -0
  13. {hilda-2.0.12 → hilda-2.0.13}/gifs/ui.png +0 -0
  14. {hilda-2.0.12 → hilda-2.0.13}/gifs/xpc_print_message.gif +0 -0
  15. {hilda-2.0.12 → hilda-2.0.13}/hilda/__init__.py +0 -0
  16. {hilda-2.0.12 → hilda-2.0.13}/hilda/__main__.py +0 -0
  17. {hilda-2.0.12 → hilda-2.0.13}/hilda/cli.py +0 -0
  18. {hilda-2.0.12 → hilda-2.0.13}/hilda/common.py +0 -0
  19. {hilda-2.0.12 → hilda-2.0.13}/hilda/exceptions.py +0 -0
  20. {hilda-2.0.12 → hilda-2.0.13}/hilda/hilda_ascii_art.html +0 -0
  21. {hilda-2.0.12 → hilda-2.0.13}/hilda/ipython_extensions/events.py +0 -0
  22. {hilda-2.0.12 → hilda-2.0.13}/hilda/ipython_extensions/keybindings.py +0 -0
  23. {hilda-2.0.12 → hilda-2.0.13}/hilda/ipython_extensions/magics.py +0 -0
  24. {hilda-2.0.12 → hilda-2.0.13}/hilda/launch_lldb.py +0 -0
  25. {hilda-2.0.12 → hilda-2.0.13}/hilda/lldb_entrypoint.py +0 -0
  26. {hilda-2.0.12 → hilda-2.0.13}/hilda/lldb_importer.py +0 -0
  27. {hilda-2.0.12 → hilda-2.0.13}/hilda/objective_c/from_ns_to_json.m +0 -0
  28. {hilda-2.0.12 → hilda-2.0.13}/hilda/objective_c/get_objectivec_class_by_module.m +0 -0
  29. {hilda-2.0.12 → hilda-2.0.13}/hilda/objective_c/get_objectivec_class_description.m +0 -0
  30. {hilda-2.0.12 → hilda-2.0.13}/hilda/objective_c/get_objectivec_symbol_data.m +0 -0
  31. {hilda-2.0.12 → hilda-2.0.13}/hilda/objective_c/lsof.m +0 -0
  32. {hilda-2.0.12 → hilda-2.0.13}/hilda/objective_c/to_ns_from_json.m +0 -0
  33. {hilda-2.0.12 → hilda-2.0.13}/hilda/objective_c_class.py +0 -0
  34. {hilda-2.0.12 → hilda-2.0.13}/hilda/objective_c_symbol.py +0 -0
  35. {hilda-2.0.12 → hilda-2.0.13}/hilda/registers.py +0 -0
  36. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/__init__.py +0 -0
  37. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/boringssl.py +0 -0
  38. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/collections.py +0 -0
  39. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/dyld.py +0 -0
  40. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/fs_utils.py +0 -0
  41. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/mach/CFRunLoopServiceMachPort_hooks.py +0 -0
  42. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/mach/__init__.py +0 -0
  43. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/macho/__init__.py +0 -0
  44. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/macho/all_image_infos.py +0 -0
  45. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/macho/apple_version.py +0 -0
  46. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/macho/image_info.py +0 -0
  47. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/macho/macho.py +0 -0
  48. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/macho/macho_load_commands.py +0 -0
  49. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/remotepairingd.py +0 -0
  50. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/syslog.py +0 -0
  51. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/uuid.py +0 -0
  52. {hilda-2.0.12 → hilda-2.0.13}/hilda/snippets/xpc.py +0 -0
  53. {hilda-2.0.12 → hilda-2.0.13}/hilda/symbols_jar.py +0 -0
  54. {hilda-2.0.12 → hilda-2.0.13}/hilda/ui/colors.json +0 -0
  55. {hilda-2.0.12 → hilda-2.0.13}/hilda/ui/ui_manager.py +0 -0
  56. {hilda-2.0.12 → hilda-2.0.13}/hilda/ui/views.py +0 -0
  57. {hilda-2.0.12 → hilda-2.0.13}/hilda.egg-info/SOURCES.txt +0 -0
  58. {hilda-2.0.12 → hilda-2.0.13}/hilda.egg-info/dependency_links.txt +0 -0
  59. {hilda-2.0.12 → hilda-2.0.13}/hilda.egg-info/entry_points.txt +0 -0
  60. {hilda-2.0.12 → hilda-2.0.13}/hilda.egg-info/requires.txt +0 -0
  61. {hilda-2.0.12 → hilda-2.0.13}/hilda.egg-info/top_level.txt +0 -0
  62. {hilda-2.0.12 → hilda-2.0.13}/pyproject.toml +0 -0
  63. {hilda-2.0.12 → hilda-2.0.13}/requirements.txt +0 -0
  64. {hilda-2.0.12 → hilda-2.0.13}/setup.cfg +0 -0
  65. {hilda-2.0.12 → hilda-2.0.13}/tests/__init__.py +0 -0
  66. {hilda-2.0.12 → hilda-2.0.13}/tests/conftest.py +0 -0
  67. {hilda-2.0.12 → hilda-2.0.13}/tests/test_hilda_client/test_from_ns.py +0 -0
  68. {hilda-2.0.12 → hilda-2.0.13}/tests/test_hilda_client/test_hilda_client.py +0 -0
  69. {hilda-2.0.12 → hilda-2.0.13}/tests/test_hilda_client/test_monitor.py +0 -0
  70. {hilda-2.0.12 → hilda-2.0.13}/tests/test_hilda_client/test_ns.py +0 -0
  71. {hilda-2.0.12 → hilda-2.0.13}/tests/test_hilda_client/test_rebind_symbols.py +0 -0
  72. {hilda-2.0.12 → hilda-2.0.13}/tests/test_hilda_client/test_registers.py +0 -0
  73. {hilda-2.0.12 → hilda-2.0.13}/tests/test_snippets/test_xpc.py +0 -0
  74. {hilda-2.0.12 → hilda-2.0.13}/tests/test_symbols/test_objective_c_class.py +0 -0
  75. {hilda-2.0.12 → hilda-2.0.13}/tests/test_symbols/test_objective_c_symbol.py +0 -0
  76. {hilda-2.0.12 → hilda-2.0.13}/tests/test_symbols/test_symbol.py +0 -0
  77. {hilda-2.0.12 → hilda-2.0.13}/tests/test_symbols/test_symbols_jar.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hilda
3
- Version: 2.0.12
3
+ Version: 2.0.13
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>
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '2.0.12'
16
- __version_tuple__ = version_tuple = (2, 0, 12)
15
+ __version__ = version = '2.0.13'
16
+ __version_tuple__ = version_tuple = (2, 0, 13)
@@ -125,9 +125,29 @@ def stop_is_needed(func: Callable):
125
125
  return wrapper
126
126
 
127
127
 
128
- class HildaClient:
129
- Breakpoint = namedtuple('Breakpoint', 'address options forced callback')
128
+ class HildaBreakpoint:
129
+ def __init__(self, hilda_client: 'HildaClient', lldb_breakpoint: lldb.SBBreakpoint,
130
+ address: Union[str, int], forced: bool = False, options: Optional[typing.Mapping] = None,
131
+ callback: Optional[Callable] = None) -> None:
132
+ self._hilda_client = hilda_client
133
+ self.address = address
134
+ self.forced = forced
135
+ self.options = options
136
+ self.callback = callback
137
+ self.lldb_breakpoint = lldb_breakpoint
138
+
139
+ def __repr__(self) -> str:
140
+ return (f'<{self.__class__.__name__} LLDB:{self.lldb_breakpoint} FORCED:{self.forced} OPTIONS:{self.options} '
141
+ f'CALLBACK:{self.callback}>')
142
+
143
+ def __str__(self) -> str:
144
+ return repr(self)
130
145
 
146
+ def remove(self) -> None:
147
+ self._hilda_client.remove_hilda_breakpoint(self.lldb_breakpoint.id)
148
+
149
+
150
+ class HildaClient:
131
151
  RETVAL_BIT_COUNT = 64
132
152
 
133
153
  def __init__(self, debugger: lldb.SBDebugger):
@@ -473,7 +493,7 @@ class HildaClient:
473
493
  with self.stopped():
474
494
  return self.evaluate_expression(call_expression)
475
495
 
476
- def monitor(self, address, condition: str = None, **options) -> lldb.SBBreakpoint:
496
+ def monitor(self, address, condition: str = None, **options) -> HildaBreakpoint:
477
497
  """
478
498
  Monitor every time a given address is called
479
499
 
@@ -613,7 +633,7 @@ class HildaClient:
613
633
  if remove_forced or not bp.forced:
614
634
  self.remove_hilda_breakpoint(bp_id)
615
635
 
616
- def remove_hilda_breakpoint(self, bp_id):
636
+ def remove_hilda_breakpoint(self, bp_id: int) -> None:
617
637
  """
618
638
  Remove a single breakpoint placed by Hilda
619
639
  :param bp_id: Breakpoint's ID
@@ -647,7 +667,7 @@ class HildaClient:
647
667
  print(highlight(entitlements, XmlLexer(), TerminalTrueColorFormatter()))
648
668
 
649
669
  def bp(self, address_or_name: Union[int, str], callback: Optional[Callable] = None, condition: str = None,
650
- forced=False, module_name: Optional[str] = None, **options) -> lldb.SBBreakpoint:
670
+ forced=False, module_name: Optional[str] = None, **options) -> HildaBreakpoint:
651
671
  """
652
672
  Add a breakpoint
653
673
  :param address_or_name:
@@ -676,15 +696,14 @@ class HildaClient:
676
696
  bp.SetCondition(condition)
677
697
 
678
698
  # add into Hilda's internal list of breakpoints
679
- self.breakpoints[bp.id] = HildaClient.Breakpoint(
680
- address=address_or_name, options=options, forced=forced, callback=callback
681
- )
699
+ self.breakpoints[bp.id] = HildaBreakpoint(self, bp, address=address_or_name, forced=forced, options=options,
700
+ callback=callback)
682
701
 
683
702
  if callback is not None:
684
703
  bp.SetScriptCallbackFunction('lldb.hilda_client.bp_callback_router')
685
704
 
686
705
  self.log_info(f'Breakpoint #{bp.id} has been set')
687
- return bp
706
+ return self.breakpoints[bp.id]
688
707
 
689
708
  def bp_callback_router(self, frame, bp_loc, *_):
690
709
  """
@@ -139,10 +139,10 @@ class Symbol(int):
139
139
  def peek_str(self) -> str:
140
140
  return self._client.peek_str(self)
141
141
 
142
- def monitor(self, **args) -> lldb.SBBreakpoint:
142
+ def monitor(self, **args):
143
143
  return self._client.monitor(self, **args)
144
144
 
145
- def bp(self, callback=None, **args) -> lldb.SBBreakpoint:
145
+ def bp(self, callback=None, **args):
146
146
  return self._client.bp(self, callback, **args)
147
147
 
148
148
  def disass(self, size, **args) -> lldb.SBInstructionList:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hilda
3
- Version: 2.0.12
3
+ Version: 2.0.13
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