core-extra/gui/debug.tcl

47 lines
1.2 KiB
Tcl
Raw Normal View History

.menubar.tools add command -label "Debugger..." -command popupDebugger
set g_last_debug_cmd "puts \"Hello world\""
proc popupDebugger {} {
global g_last_debug_cmd
set wi .debugger
catch { destroy $wi }
toplevel $wi
wm transient $wi .
wm resizable $wi 300 200
wm title $wi "CORE Debugger"
frame $wi.dbg -borderwidth 4
label $wi.dbg.label1 \
-text "Enter TCL/Tk commands below, press Run to evaluate:"
text $wi.dbg.cmd -bg white -width 100 -height 3
pack $wi.dbg.label1 $wi.dbg.cmd -side top -anchor w -padx 4 -pady 4
pack $wi.dbg -side top
$wi.dbg.cmd insert end "$g_last_debug_cmd"
frame $wi.btn
# evaluate debugging commands entered into the text box below
button $wi.btn.exec -text "Run" -command {
global g_last_debug_cmd
set wi .debugger
set i 1
set g_last_debug_cmd ""
while { 1 } {
set cmd [$wi.dbg.cmd get $i.0 $i.end]
set g_last_debug_cmd "$g_last_debug_cmd$cmd\n"
if { $cmd == "" } { break }
catch { eval $cmd } output
puts $output
incr i
}
}
button $wi.btn.close -text "Close" -command "destroy .debugger"
pack $wi.btn.exec $wi.btn.close -side left -padx 4 -pady 4
pack $wi.btn -side bottom
}