Skip to content

Commit a91713c

Browse files
committed
Make "run" enabled, switch to Debugger view, fix #63
1 parent 7e9234c commit a91713c

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

dockwidgets/DebugView.py

+2
Original file line numberDiff line numberDiff line change
@@ -339,12 +339,14 @@ def show_raw_disassembly(self, raw):
339339
self.is_raw_disassembly = raw
340340

341341
class DebugViewType(ViewType):
342+
# executed at plugin load time from from ui.py ViewType.registerViewType()
342343
def __init__(self):
343344
super(DebugViewType, self).__init__("Debugger", "Debugger")
344345

345346
def getPriority(self, data, filename):
346347
return 1
347348

349+
# executed when user clicks "Debugger" from dropdown with binary views
348350
def create(self, data, view_frame):
349351
return DebugView(view_frame, data)
350352

ui.py

+15-1
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,15 @@ def valid_bp_toggle(bv, address):
451451
#------------------------------------------------------------------------------
452452

453453
def cb_process_run(bv):
454+
def switch_view():
455+
dh = DockHandler.getActiveDockHandler()
456+
vf = dh.getViewFrame()
457+
vf.setViewType('Debugger:' + bv.view_type)
458+
454459
debug_state = binjaplug.get_state(bv)
460+
if debug_state.ui.debug_view is None:
461+
execute_on_main_thread_and_wait(switch_view)
462+
455463
if debug_state.ui.debug_view is not None:
456464
debug_state.ui.debug_view.controls.actionRun.trigger()
457465

@@ -519,7 +527,13 @@ def cb_control_step_return(bv):
519527

520528
def valid_process_run(bv):
521529
debug_state = binjaplug.get_state(bv)
522-
return debug_state.ui.debug_view is not None and debug_state.ui.debug_view.controls.actionRun.isEnabled()
530+
531+
# if the debugger UI is up, the state with debuggee determines whether button is activated
532+
if debug_state.ui.debug_view is not None:
533+
return debug_state.ui.debug_view.controls.actionRun.isEnabled()
534+
535+
# else, assume activated, initiate debug_state.ui on click
536+
return True
523537

524538
def valid_process_restart(bv):
525539
debug_state = binjaplug.get_state(bv)

0 commit comments

Comments
 (0)