Skip to content

Commit c51feb7

Browse files
authored
Add displayed_registers setting to allow showing of specific registers (#53)
1 parent 0363f5f commit c51feb7

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ Settings are stored in a file `.llef` located in your home directory formatted a
7373
| rebase_addresses | Boolean | Enable/disable address rebase output |
7474
| rebase_offset | Int | Set the rebase offset (default 0x100000) |
7575
| show_all_registers | Boolean | Enable/disable extended register output |
76+
| displayed_registers | List | Comma separated list of registers to display. Order is preserved. Use `default` as a placeholder for the built-in registers. e.g. `llefsettings set displayed_registers default,ymm0,ymm1` |
7677
| enable_darwin_heap_scan | Boolean | Enable/disable more accurate heap scanning for Darwin-based platforms. Uses the Darwin malloc introspection API, executing code in the address space of the target application using LLDB's evaluation engine |
7778
| max_trace_length | Int | Set the maximum length of the call stack backtrace to display |
7879
| stack_view_size | Int | Set the number of entries in the stack read to display |

common/context_handler.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,11 @@ def display_registers(self) -> None:
310310
for reg in self.arch().flag_registers:
311311
if reg.name in register_list:
312312
register_list.remove(reg.name)
313+
elif self.settings.displayed_registers is not None:
314+
register_list = self.settings.displayed_registers
315+
if "default" in register_list:
316+
default_id = register_list.index("default")
317+
register_list = register_list[:default_id] + self.arch().gpr_registers + register_list[default_id + 1 :]
313318
else:
314319
register_list = self.arch().gpr_registers
315320

common/settings.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Global settings module"""
22

33
import os
4-
from typing import Union
4+
from typing import List, Union
55

66
from lldb import SBDebugger
77

@@ -74,6 +74,11 @@ def rebase_offset(self) -> int:
7474
def show_all_registers(self) -> bool:
7575
return self._RAW_CONFIG.getboolean(self.GLOBAL_SECTION, "show_all_registers", fallback=False)
7676

77+
@property
78+
def displayed_registers(self) -> List[str]:
79+
displayed_str = self._RAW_CONFIG.get(self.GLOBAL_SECTION, "displayed_registers", fallback=None)
80+
return displayed_str.split(",") if displayed_str is not None else None
81+
7782
@property
7883
def output_order(self) -> str:
7984
return self._RAW_CONFIG.get(self.GLOBAL_SECTION, "output_order", fallback=self.DEFAUL_OUTPUT_ORDER)

0 commit comments

Comments
 (0)