Skip to content

Commit 383b03f

Browse files
Add disable assembly & register flag for panels (#24)
1 parent 8c32534 commit 383b03f

File tree

1 file changed

+45
-15
lines changed

1 file changed

+45
-15
lines changed

idd.py

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ class DiffDebug(App):
4646
base_command_bar = Input(placeholder="Enter your base command here...", name="base_command_bar", id="base-command-bar")
4747
regressed_command_bar = Input(placeholder="Enter your regression command here...", name="regressed_command_bar", id="regressed-command-bar")
4848

49+
def __init__(self, disable_asm=False, disable_registers=False):
50+
super().__init__()
51+
self.disable_asm = disable_asm
52+
self.disable_registers = disable_registers
53+
4954
async def set_common_command_result(self, command_result) -> None:
5055
if command_result:
5156
raw_base_contents = command_result["base"]
@@ -58,8 +63,10 @@ async def set_common_command_result(self, command_result) -> None:
5863
await self.set_pframes_command_result(state)
5964
await self.set_pargs_command_result(state)
6065
await self.set_plocals_command_result(state)
61-
await self.set_pasm_command_result(state)
62-
await self.set_pregisters_command_result(state)
66+
if not disable_assembly:
67+
await self.set_pasm_command_result(state)
68+
if not disable_registers:
69+
await self.set_pregisters_command_result(state)
6370

6471
#calls = Debugger.get_current_calls()
6572

@@ -148,17 +155,36 @@ def compose(self) -> ComposeResult:
148155
with Horizontal(classes="row2"):
149156
with Horizontal():
150157
yield self.diff_locals1
158+
yield self.diff_args1
159+
if not self.disable_registers and not self.disable_asm:
160+
with Vertical():
161+
with Horizontal():
162+
yield self.diff_reg1
163+
with Horizontal():
164+
yield self.diff_asm1
165+
elif not self.disable_asm:
166+
with Vertical():
167+
yield self.diff_asm1
168+
elif not self.disable_registers:
169+
with Vertical():
170+
yield self.diff_reg1
171+
172+
with Horizontal():
151173
yield self.diff_locals2
152174
yield self.diff_args1
153175
yield self.diff_args2
154-
155-
with Vertical():
156-
with Horizontal():
157-
yield self.diff_reg1
158-
yield self.diff_reg2
159-
with Horizontal():
160-
yield self.diff_asm1
161-
yield self.diff_asm2
176+
if not self.disable_registers and not self.disable_asm:
177+
with Vertical():
178+
with Horizontal():
179+
yield self.diff_reg2
180+
with Horizontal():
181+
yield self.diff_asm2
182+
elif not self.disable_asm:
183+
with Vertical():
184+
yield self.diff_asm2
185+
elif not self.disable_registers:
186+
with Vertical():
187+
yield self.diff_reg2
162188

163189
#yield self.executable_path1
164190
#yield self.executable_path2
@@ -218,29 +244,33 @@ async def execute_debugger_command(self, event: Input.Changed) -> None:
218244
parser.add_argument('-ba','--base-args', help='Base executable args', default='[]', nargs='+')
219245
parser.add_argument('-bs','--base-script-path', help='Base preliminary script file path', default=None, nargs='+')
220246
parser.add_argument('-ra','--regression-args', help='Regression executable args', default='[]', nargs='+')
221-
parser.add_argument('-rs','--regression-script-path', help='Regression prelimminary script file path', default=None, nargs='+')
247+
parser.add_argument('-rs','--regression-script-path', help='Regression preliminary script file path', default=None, nargs='+')
222248
parser.add_argument('-r','--remote_host', help='The host of the remote server', default='localhost')
223249
parser.add_argument('-p','--platform', help='The platform of the remote server: macosx, linux', default='linux')
224250
parser.add_argument('-t','--triple', help='The target triple: x86_64-apple-macosx, x86_64-gnu-linux', default='x86_64-gnu-linux')
225251
parser.add_argument('-lvf','--local-vars-filter', help='Filter for the local vars: local-vars-filter', default='x86_64-gnu-linux')
252+
parser.add_argument('--disable-assembly', help='Disables the assembly panel', default=False, action='store_true')
253+
parser.add_argument('--disable-registers', help='Disables the registers panel', default=False, action='store_true')
226254
args = vars(parser.parse_args())
227255

228-
comperator = args['comparator']
256+
comparator = args['comparator']
229257
ba = ' '.join(args['base_args'])
230258
bs = ' '.join(args['base_script_path']) if args['base_script_path'] is not None else None
231259
ra = ' '.join(args['regression_args'])
232260
rs = ' '.join(args['regression_script_path']) if args["regression_script_path"] is not None else None
233261

234-
if comperator == 'gdb':
262+
if comparator == 'gdb':
235263
from debuggers.gdb.gdb_mi_driver import GDBMiDebugger
236264

237265
Debugger = GDBMiDebugger(ba, bs, ra, rs)
238-
elif comperator == 'lldb':
266+
elif comparator == 'lldb':
239267
from debuggers.lldb.lldb_driver import LLDBDebugger
240268

241269
Debugger = LLDBDebugger(ba, ra)
242270
else:
243271
sys.exit("Invalid comparator set")
244272

245-
dd = DiffDebug()
273+
disable_registers = args["disable_registers"]
274+
disable_assembly = args["disable_assembly"]
275+
dd = DiffDebug(disable_assembly, disable_registers)
246276
dd.run()

0 commit comments

Comments
 (0)