46 lines
1.2 KiB
Tcl
46 lines
1.2 KiB
Tcl
.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
|
|
}
|