'''UNDER CONSTRUCTION''' **Tcl Plugin for Netbeans - Debugger Overview** ***Debug Process*** Debugger is separated into two parts: Java (implements Netbeans Debugger Core API and Debugger Core - UI) and Tcl part (debugServer.tcl). Java part communicates with debugServer.tcl using socket and simple "newline" based protocol. To handle script execution Tcl's [trace] and [info] are used.<
> To start debug process use '''Debug Project''' ''(Ctrl+F5)'' then following state will appear:<
> <
> %|Netbeans window after '''Debug Project''' ''(Ctrl+F5)'':|% |[http://wiki.tcl.tk/_repo/images/dmp/DebugBefore.png]| <
> Tclsh executes debugServer.tcl. It's waiting for connection from Netbeans Interface. Click any (except Stop) [http://wiki.tcl.tk/28657#pagetocab4f3e78%|%debugger control button] to make a connection. debugServer.tcl will put appropriate information. Execution stops at the very first step of script. Now use [http://wiki.tcl.tk/28657#pagetocab4f3e78%|%debugger interface] to control debug process.<
> <
> %|After connection:|% |[http://wiki.tcl.tk/_repo/images/dmp/DebugConnection.png]| <
> ***Debugger Control Buttons*** [http://wiki.tcl.tk/_repo/images/dmp/DebugControls.png]<
> From the left side:<
> * ''Finish Debugger Session:'' To quit debug mode. Terminates script execution. * ''Pause:'' Unused. * ''Continue:'' Run script until it reaches breakpoint. * ''Step Over:'' Single step, stepping over instruction if available. * ''Step Into:'' Single step, stepping into instruction if available. * ''Run To Cursor:'' Run script until it reaches cursor position or next breakpoint. Run to cursor simply adds temporary breakpoint (unvisible for user interface, but works the same as visible one) in line where cursor is present. ***Debugger Views*** ****Breakpoints**** Set breakpoint by click line number inside editor. '''To run properly breakpoint must be in the line with some code, because empty lines are ommited by [trace] steps.''' Using ''Breakpoints View'' you could '''Jump To''' place where selected breakpoint is located or '''Delete''' one.<
> <
> %|Breakpoints View|% |[http://wiki.tcl.tk/_repo/images/dmp/DebugBreakpointsView.png]| ****Variables**** Formatted content of [info locals%|%[info locals]] and [info globals%|%[info globals]]. Using the diamond with plus (on the left side of ''Variables View'') - a ''Watch'' could be added. Other diamonds may be used to show watches inside ''Variables View'' or ''Evaluation Result'' (Evaluation is unused).<
> <
> %|Variables View|% |[http://wiki.tcl.tk/_repo/images/dmp/DebugVariablesView.png]| ****Watches**** Appears as a separate window when ''Show Watches Inside Variables View'' option (inside ''Variables View'') is disabled. Watches just display value for given variable name when it's set. I found it useful when variable view contains a lot of variables or you want to watch element from array. You could type tcl_platform(osVersion) for example to see element of array in the watch.<
> <
> %|Watches View|% |[http://wiki.tcl.tk/_repo/images/dmp/DebugWatchesView.png]| ****Call Stack**** %|Call Stack View|% |[http://wiki.tcl.tk/_repo/images/dmp/DebugCallStackView.png]| <>GSoC|GSoC 2011 Executed Projects|netbeanstcl