hilda 3.5.2__py3-none-any.whl → 3.5.3__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 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.5.2'
32
- __version_tuple__ = version_tuple = (3, 5, 2)
31
+ __version__ = version = '3.5.3'
32
+ __version_tuple__ = version_tuple = (3, 5, 3)
33
33
 
34
34
  __commit_id__ = commit_id = None
hilda/hilda_client.py CHANGED
@@ -167,14 +167,23 @@ class HildaClient:
167
167
  return {int(k): v for k, v in result.items()}
168
168
 
169
169
  def bt(self, should_print: bool = False, depth: Optional[int] = None) -> list[Union[str, lldb.SBFrame]]:
170
- """ Print an improved backtrace. """
170
+ """
171
+ Get backtrace of the current thread.
172
+
173
+ :param should_print: Whether to print the backtrace to stdout. Please note this backtrace also resolved user
174
+ imported symbols.
175
+ :param depth: Maximum depth of the backtrace to return
176
+ :return: List of backtrace frames, each represented as a tuple of (address, frame)
177
+ """
171
178
  backtrace = []
172
179
  for i, frame in enumerate(self.thread.frames):
173
180
  if i == depth:
174
181
  break
175
182
  row = ''
176
183
  row += click.style(f'0x{frame.addr.GetFileAddress():x} ', fg='cyan')
177
- row += str(frame)
184
+ row += f' frame #{i:02} '
185
+ row += click.style(f'0x{frame.pc:016x} ', fg='yellow')
186
+ row += str(frame.addr)
178
187
  if i == 0:
179
188
  # first line
180
189
  row += ' 👈'
hilda/symbols.py CHANGED
@@ -38,6 +38,7 @@ class SymbolList:
38
38
  self._global = self
39
39
  else:
40
40
  self._global = hilda.symbols
41
+ self._manual_lldb_symbols = {}
41
42
 
42
43
  def __iter__(self) -> Iterator[Symbol]:
43
44
  self._populate_cache()
@@ -379,18 +380,23 @@ class SymbolList:
379
380
  lldb_module = lldb_address.module
380
381
  symbol_file_address = lldb_address.GetFileAddress()
381
382
 
382
- # Create symbol file
383
- data = {
384
- "triple": lldb_module.GetTriple(),
385
- "uuid": lldb_module.GetUUIDString(),
386
- "symbols": [{
383
+ lldb_module_uuid = lldb_module.GetUUIDString()
384
+ if lldb_module_uuid not in self._manual_lldb_symbols:
385
+ # Create a symbol dictionary
386
+ self._manual_lldb_symbols[lldb_module_uuid] = {
387
+ "triple": lldb_module.GetTriple(),
388
+ "uuid": lldb_module_uuid,
389
+ "symbols": []
390
+ }
391
+
392
+ # Add the symbol to the dictionary
393
+ self._manual_lldb_symbols[lldb_module_uuid]["symbols"].append({
387
394
  "name": symbol_name,
388
395
  "type": symbol_type,
389
396
  "size": symbol_size,
390
397
  "address": symbol_file_address,
391
- }],
392
- }
393
- json.dump(data, symbols_file)
398
+ })
399
+ json.dump(self._manual_lldb_symbols[lldb_module_uuid], symbols_file)
394
400
  symbols_file.flush()
395
401
 
396
402
  # Add symbol from file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hilda
3
- Version: 3.5.2
3
+ Version: 3.5.3
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,13 +3,13 @@ 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=iWQucI5qNO8hYVSnhRYLlb9dvOTB4DdyrJvAhTviupc,704
6
+ hilda/_version.py,sha256=uGirExQiIuozFO7xiYbwhUmFpJQjyjF-do04SOQmk_g,704
7
7
  hilda/breakpoints.py,sha256=ELPLG5LTWFsoPyVrBUIDj0VGnnqHrV1RzEfWR1sTbT8,20052
8
8
  hilda/cli.py,sha256=PCjrI7GrERIrZCODJYmPt6eyl-nPYZviTS8fBG3oIjM,3618
9
9
  hilda/common.py,sha256=El-ih7cvCv9PJ5OWb1jkCbh4GuaRD6gqlrFC5gyY-TE,498
10
10
  hilda/decorators.py,sha256=uD8amDLgOpNLF90KhRVd1OkssYqh1UR7e0zemyIKcqc,963
11
11
  hilda/exceptions.py,sha256=GMJVc_zbzqVyieL45GJNJ-SutoTJefvNX2UInM8OgqE,1882
12
- hilda/hilda_client.py,sha256=TZCUGCATh8x8yDROke2Yr3Xx7OqfzsyWrDH6EkmLyfk,37169
12
+ hilda/hilda_client.py,sha256=osDPz5z1_Amn8xmTKWO8OpUV9zEsHWSK5IiIMvw5TcQ,37622
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
@@ -17,7 +17,7 @@ hilda/objective_c_class.py,sha256=L-L3F9XL1w5SnEduBuqes5nGJ-PirM6H72-0K34Tfw4,14
17
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
- hilda/symbols.py,sha256=49LqMa4R4Gdw2IKrxDtJwxzEuYPIu2xjj-KvFPxFmhI,22970
20
+ hilda/symbols.py,sha256=RzITqgcLa-YnZbk6j-ZVY331eZP_6Z1cZsxIhRXrBJk,23368
21
21
  hilda/watchpoints.py,sha256=kicuGT2RhJ_PfV9obl3Ov534rvMZQcoHLsT8YnmP_XU,9299
22
22
  hilda/ipython_extensions/events.py,sha256=zJvPsdFT3th4BwG9xm0u7GRnDOXpVbF6n9IC2ixv86k,1682
23
23
  hilda/ipython_extensions/keybindings.py,sha256=W_Cnh8lG5yVdK5x0A-4UeyBsoJBufbYl54Mqrbo8OwM,1922
@@ -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.5.2.dist-info/licenses/LICENSE,sha256=M-LVJ0AFAYB82eueyl8brh-QLPe-iLNVgbCi79-3TDo,1078
53
- hilda-3.5.2.dist-info/METADATA,sha256=KGWEPeDX7s9Hk9ZB1o2aW7g7dZSUoKoJ-8NAtcGOX5E,21695
54
- hilda-3.5.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
55
- hilda-3.5.2.dist-info/entry_points.txt,sha256=9n3O3j6V3XnVR_GcFqCWNgRAbalfukTSW2WvghsLVmA,46
56
- hilda-3.5.2.dist-info/top_level.txt,sha256=TVD7l1WkE1noT866YqPFhiQnjYCYZM5Xz54v_3EYpnI,11
57
- hilda-3.5.2.dist-info/RECORD,,
52
+ hilda-3.5.3.dist-info/licenses/LICENSE,sha256=M-LVJ0AFAYB82eueyl8brh-QLPe-iLNVgbCi79-3TDo,1078
53
+ hilda-3.5.3.dist-info/METADATA,sha256=KfloDu8hwxMnaV6K_KB9RlEX5aDRV9S5DEdtl7K2Xzc,21695
54
+ hilda-3.5.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
55
+ hilda-3.5.3.dist-info/entry_points.txt,sha256=9n3O3j6V3XnVR_GcFqCWNgRAbalfukTSW2WvghsLVmA,46
56
+ hilda-3.5.3.dist-info/top_level.txt,sha256=TVD7l1WkE1noT866YqPFhiQnjYCYZM5Xz54v_3EYpnI,11
57
+ hilda-3.5.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5