hilda 2.0.15__tar.gz → 2.0.16__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 (78) hide show
  1. {hilda-2.0.15 → hilda-2.0.16}/PKG-INFO +3 -1
  2. {hilda-2.0.15 → hilda-2.0.16}/README.md +2 -0
  3. {hilda-2.0.15 → hilda-2.0.16}/hilda/_version.py +2 -2
  4. {hilda-2.0.15 → hilda-2.0.16}/hilda/hilda_client.py +10 -1
  5. {hilda-2.0.15 → hilda-2.0.16}/hilda/symbol.py +3 -0
  6. {hilda-2.0.15 → hilda-2.0.16}/hilda.egg-info/PKG-INFO +3 -1
  7. {hilda-2.0.15 → hilda-2.0.16}/.github/workflows/python-app.yml +0 -0
  8. {hilda-2.0.15 → hilda-2.0.16}/.github/workflows/python-publish.yml +0 -0
  9. {hilda-2.0.15 → hilda-2.0.16}/.gitignore +0 -0
  10. {hilda-2.0.15 → hilda-2.0.16}/.pre-commit-config.yaml +0 -0
  11. {hilda-2.0.15 → hilda-2.0.16}/LICENSE +0 -0
  12. {hilda-2.0.15 → hilda-2.0.16}/gifs/.gitattributes +0 -0
  13. {hilda-2.0.15 → hilda-2.0.16}/gifs/ui.png +0 -0
  14. {hilda-2.0.15 → hilda-2.0.16}/gifs/xpc_print_message.gif +0 -0
  15. {hilda-2.0.15 → hilda-2.0.16}/hilda/__init__.py +0 -0
  16. {hilda-2.0.15 → hilda-2.0.16}/hilda/__main__.py +0 -0
  17. {hilda-2.0.15 → hilda-2.0.16}/hilda/cli.py +0 -0
  18. {hilda-2.0.15 → hilda-2.0.16}/hilda/common.py +0 -0
  19. {hilda-2.0.15 → hilda-2.0.16}/hilda/exceptions.py +0 -0
  20. {hilda-2.0.15 → hilda-2.0.16}/hilda/hilda_ascii_art.html +0 -0
  21. {hilda-2.0.15 → hilda-2.0.16}/hilda/ipython_extensions/events.py +0 -0
  22. {hilda-2.0.15 → hilda-2.0.16}/hilda/ipython_extensions/keybindings.py +0 -0
  23. {hilda-2.0.15 → hilda-2.0.16}/hilda/ipython_extensions/magics.py +0 -0
  24. {hilda-2.0.15 → hilda-2.0.16}/hilda/launch_lldb.py +0 -0
  25. {hilda-2.0.15 → hilda-2.0.16}/hilda/lldb_entrypoint.py +0 -0
  26. {hilda-2.0.15 → hilda-2.0.16}/hilda/lldb_importer.py +0 -0
  27. {hilda-2.0.15 → hilda-2.0.16}/hilda/objective_c/from_ns_to_json.m +0 -0
  28. {hilda-2.0.15 → hilda-2.0.16}/hilda/objective_c/get_objectivec_class_by_module.m +0 -0
  29. {hilda-2.0.15 → hilda-2.0.16}/hilda/objective_c/get_objectivec_class_description.m +0 -0
  30. {hilda-2.0.15 → hilda-2.0.16}/hilda/objective_c/get_objectivec_symbol_data.m +0 -0
  31. {hilda-2.0.15 → hilda-2.0.16}/hilda/objective_c/lsof.m +0 -0
  32. {hilda-2.0.15 → hilda-2.0.16}/hilda/objective_c/to_ns_from_json.m +0 -0
  33. {hilda-2.0.15 → hilda-2.0.16}/hilda/objective_c_class.py +0 -0
  34. {hilda-2.0.15 → hilda-2.0.16}/hilda/objective_c_symbol.py +0 -0
  35. {hilda-2.0.15 → hilda-2.0.16}/hilda/registers.py +0 -0
  36. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/__init__.py +0 -0
  37. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/boringssl.py +0 -0
  38. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/collections.py +0 -0
  39. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/dyld.py +0 -0
  40. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/fs_utils.py +0 -0
  41. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/libmalloc.py +0 -0
  42. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/mach/CFRunLoopServiceMachPort_hooks.py +0 -0
  43. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/mach/__init__.py +0 -0
  44. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/macho/__init__.py +0 -0
  45. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/macho/all_image_infos.py +0 -0
  46. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/macho/apple_version.py +0 -0
  47. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/macho/image_info.py +0 -0
  48. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/macho/macho.py +0 -0
  49. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/macho/macho_load_commands.py +0 -0
  50. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/remotepairingd.py +0 -0
  51. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/syslog.py +0 -0
  52. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/uuid.py +0 -0
  53. {hilda-2.0.15 → hilda-2.0.16}/hilda/snippets/xpc.py +0 -0
  54. {hilda-2.0.15 → hilda-2.0.16}/hilda/symbols_jar.py +0 -0
  55. {hilda-2.0.15 → hilda-2.0.16}/hilda/ui/colors.json +0 -0
  56. {hilda-2.0.15 → hilda-2.0.16}/hilda/ui/ui_manager.py +0 -0
  57. {hilda-2.0.15 → hilda-2.0.16}/hilda/ui/views.py +0 -0
  58. {hilda-2.0.15 → hilda-2.0.16}/hilda.egg-info/SOURCES.txt +0 -0
  59. {hilda-2.0.15 → hilda-2.0.16}/hilda.egg-info/dependency_links.txt +0 -0
  60. {hilda-2.0.15 → hilda-2.0.16}/hilda.egg-info/entry_points.txt +0 -0
  61. {hilda-2.0.15 → hilda-2.0.16}/hilda.egg-info/requires.txt +0 -0
  62. {hilda-2.0.15 → hilda-2.0.16}/hilda.egg-info/top_level.txt +0 -0
  63. {hilda-2.0.15 → hilda-2.0.16}/pyproject.toml +0 -0
  64. {hilda-2.0.15 → hilda-2.0.16}/requirements.txt +0 -0
  65. {hilda-2.0.15 → hilda-2.0.16}/setup.cfg +0 -0
  66. {hilda-2.0.15 → hilda-2.0.16}/tests/__init__.py +0 -0
  67. {hilda-2.0.15 → hilda-2.0.16}/tests/conftest.py +0 -0
  68. {hilda-2.0.15 → hilda-2.0.16}/tests/test_hilda_client/test_from_ns.py +0 -0
  69. {hilda-2.0.15 → hilda-2.0.16}/tests/test_hilda_client/test_hilda_client.py +0 -0
  70. {hilda-2.0.15 → hilda-2.0.16}/tests/test_hilda_client/test_monitor.py +0 -0
  71. {hilda-2.0.15 → hilda-2.0.16}/tests/test_hilda_client/test_ns.py +0 -0
  72. {hilda-2.0.15 → hilda-2.0.16}/tests/test_hilda_client/test_rebind_symbols.py +0 -0
  73. {hilda-2.0.15 → hilda-2.0.16}/tests/test_hilda_client/test_registers.py +0 -0
  74. {hilda-2.0.15 → hilda-2.0.16}/tests/test_snippets/test_xpc.py +0 -0
  75. {hilda-2.0.15 → hilda-2.0.16}/tests/test_symbols/test_objective_c_class.py +0 -0
  76. {hilda-2.0.15 → hilda-2.0.16}/tests/test_symbols/test_objective_c_symbol.py +0 -0
  77. {hilda-2.0.15 → hilda-2.0.16}/tests/test_symbols/test_symbol.py +0 -0
  78. {hilda-2.0.15 → hilda-2.0.16}/tests/test_symbols/test_symbols_jar.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: hilda
3
- Version: 2.0.15
3
+ Version: 2.0.16
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>
@@ -185,6 +185,8 @@ Here is a gist of methods you can access from `p`:
185
185
  - Read data at given address
186
186
  - `peek_str`
187
187
  - Peek a buffer till null termination
188
+ - `peek_std_str`
189
+ - Peek a `std::string`
188
190
  - `stop`
189
191
  - Stop process.
190
192
  - `cont`
@@ -128,6 +128,8 @@ Here is a gist of methods you can access from `p`:
128
128
  - Read data at given address
129
129
  - `peek_str`
130
130
  - Peek a buffer till null termination
131
+ - `peek_std_str`
132
+ - Peek a `std::string`
131
133
  - `stop`
132
134
  - Stop process.
133
135
  - `cont`
@@ -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.15'
16
- __version_tuple__ = version_tuple = (2, 0, 15)
15
+ __version__ = version = '2.0.16'
16
+ __version_tuple__ = version_tuple = (2, 0, 16)
@@ -356,6 +356,15 @@ class HildaClient:
356
356
  """
357
357
  return address.po('char *')[1:-1] # strip the ""
358
358
 
359
+ @stop_is_needed
360
+ def peek_std_str(self, address: Symbol) -> str:
361
+ """
362
+ Peek a std::string
363
+ :param address: Address to read the std::string from
364
+ :return: Python string
365
+ """
366
+ return self._std_string(address)
367
+
359
368
  def stop(self, *args) -> None:
360
369
  """ Stop process. """
361
370
  self.debugger.SetAsync(False)
@@ -1200,7 +1209,7 @@ class HildaClient:
1200
1209
  return f'((intptr_t(*)({args_type}))({address}))({args_conv})'
1201
1210
 
1202
1211
  @staticmethod
1203
- def _std_string(value):
1212
+ def _std_string(value: Symbol) -> str:
1204
1213
  if struct.unpack("b", (value + 23).peek(1))[0] >= 0:
1205
1214
  return value.peek_str()
1206
1215
  else:
@@ -139,6 +139,9 @@ class Symbol(int):
139
139
  def peek_str(self) -> str:
140
140
  return self._client.peek_str(self)
141
141
 
142
+ def peek_std_str(self) -> str:
143
+ return self._client.peek_std_str(self)
144
+
142
145
  def monitor(self, **args):
143
146
  return self._client.monitor(self, **args)
144
147
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: hilda
3
- Version: 2.0.15
3
+ Version: 2.0.16
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>
@@ -185,6 +185,8 @@ Here is a gist of methods you can access from `p`:
185
185
  - Read data at given address
186
186
  - `peek_str`
187
187
  - Peek a buffer till null termination
188
+ - `peek_std_str`
189
+ - Peek a `std::string`
188
190
  - `stop`
189
191
  - Stop process.
190
192
  - `cont`
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