@@ -46,6 +46,11 @@ class DiffDebug(App):
46
46
base_command_bar = Input (placeholder = "Enter your base command here..." , name = "base_command_bar" , id = "base-command-bar" )
47
47
regressed_command_bar = Input (placeholder = "Enter your regression command here..." , name = "regressed_command_bar" , id = "regressed-command-bar" )
48
48
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
+
49
54
async def set_common_command_result (self , command_result ) -> None :
50
55
if command_result :
51
56
raw_base_contents = command_result ["base" ]
@@ -58,8 +63,10 @@ async def set_common_command_result(self, command_result) -> None:
58
63
await self .set_pframes_command_result (state )
59
64
await self .set_pargs_command_result (state )
60
65
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 )
63
70
64
71
#calls = Debugger.get_current_calls()
65
72
@@ -148,17 +155,36 @@ def compose(self) -> ComposeResult:
148
155
with Horizontal (classes = "row2" ):
149
156
with Horizontal ():
150
157
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 ():
151
173
yield self .diff_locals2
152
174
yield self .diff_args1
153
175
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
162
188
163
189
#yield self.executable_path1
164
190
#yield self.executable_path2
@@ -218,29 +244,33 @@ async def execute_debugger_command(self, event: Input.Changed) -> None:
218
244
parser .add_argument ('-ba' ,'--base-args' , help = 'Base executable args' , default = '[]' , nargs = '+' )
219
245
parser .add_argument ('-bs' ,'--base-script-path' , help = 'Base preliminary script file path' , default = None , nargs = '+' )
220
246
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 = '+' )
222
248
parser .add_argument ('-r' ,'--remote_host' , help = 'The host of the remote server' , default = 'localhost' )
223
249
parser .add_argument ('-p' ,'--platform' , help = 'The platform of the remote server: macosx, linux' , default = 'linux' )
224
250
parser .add_argument ('-t' ,'--triple' , help = 'The target triple: x86_64-apple-macosx, x86_64-gnu-linux' , default = 'x86_64-gnu-linux' )
225
251
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' )
226
254
args = vars (parser .parse_args ())
227
255
228
- comperator = args ['comparator' ]
256
+ comparator = args ['comparator' ]
229
257
ba = ' ' .join (args ['base_args' ])
230
258
bs = ' ' .join (args ['base_script_path' ]) if args ['base_script_path' ] is not None else None
231
259
ra = ' ' .join (args ['regression_args' ])
232
260
rs = ' ' .join (args ['regression_script_path' ]) if args ["regression_script_path" ] is not None else None
233
261
234
- if comperator == 'gdb' :
262
+ if comparator == 'gdb' :
235
263
from debuggers .gdb .gdb_mi_driver import GDBMiDebugger
236
264
237
265
Debugger = GDBMiDebugger (ba , bs , ra , rs )
238
- elif comperator == 'lldb' :
266
+ elif comparator == 'lldb' :
239
267
from debuggers .lldb .lldb_driver import LLDBDebugger
240
268
241
269
Debugger = LLDBDebugger (ba , ra )
242
270
else :
243
271
sys .exit ("Invalid comparator set" )
244
272
245
- dd = DiffDebug ()
273
+ disable_registers = args ["disable_registers" ]
274
+ disable_assembly = args ["disable_assembly" ]
275
+ dd = DiffDebug (disable_assembly , disable_registers )
246
276
dd .run ()
0 commit comments