Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ Settings are stored in a file `.llef` located in your home directory formatted a
| rebase_addresses | Boolean | Enable/disable address rebase output |
| rebase_offset | Int | Set the rebase offset (default 0x100000) |
| show_all_registers | Boolean | Enable/disable extended register output |
| 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` |
| 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 |
| max_trace_length | Int | Set the maximum length of the call stack backtrace to display |
| stack_view_size | Int | Set the number of entries in the stack read to display |
Expand Down
5 changes: 5 additions & 0 deletions common/context_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,11 @@ def display_registers(self) -> None:
for reg in self.arch().flag_registers:
if reg.name in register_list:
register_list.remove(reg.name)
elif self.settings.displayed_registers is not None:
register_list = self.settings.displayed_registers
if "default" in register_list:
default_id = register_list.index("default")
register_list = register_list[:default_id] + self.arch().gpr_registers + register_list[default_id + 1 :]
else:
register_list = self.arch().gpr_registers

Expand Down
7 changes: 6 additions & 1 deletion common/settings.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Global settings module"""

import os
from typing import Union
from typing import List, Union

from lldb import SBDebugger

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

@property
def displayed_registers(self) -> List[str]:
displayed_str = self._RAW_CONFIG.get(self.GLOBAL_SECTION, "displayed_registers", fallback=None)
return displayed_str.split(",") if displayed_str is not None else None

@property
def output_order(self) -> str:
return self._RAW_CONFIG.get(self.GLOBAL_SECTION, "output_order", fallback=self.DEFAUL_OUTPUT_ORDER)
Expand Down