http://www.xpi.com/ftp/juice0.9.tar.gz
ftp://ftp.xpi.com/pub/juice0.9.tar.gz
The following is the README file.
----------------------------------------------------------------------
The Juice Debugger for Tcl
==========================
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(1) This is an alpha release. For the brave and curious only. It is
intended to be a demonstration of idea, not to be useful for any
purpose.
(2) Please read the file license.terms for important licensing
information before proceeding.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
What is Juice?
-------------
It is a debugger for Tcl. It will eventually evolve into a
debugger that looks and works very similarly to commercial
C/C++ debuggers such as the VC++ debugger.
For more info, see http://www.xpi.com/juice.
What is Juice different from other Tcl debuggers?
------------------------------------------------
- It works just like any commercial debugger. You set a break
point by clicking on the margin of the text window, single step,
view the stack, view the variables.
- It provides a graphical interface. No more crpytic commands.
- Break points can be set with either line number (implemented) or
procedure names (not yet implemneted).
What can I do to experiment with Juice?
--------------------------------------
- Start the debugger with any version of wish (version >= 4.0).
wish juice.tcl
or wish juice.tcl test1.tcl
The second command line loads a program (test.tcl) into the
debugger. You can also load a program with the "File --> Open
Program" menu.
- When a program is loaded, you can set break points by clicking
on the left margin of the text window. You will see a red dot
representing the break point. Clicking on the red dot again
removes the break point.
You can also set a break point by moving the text cursor on the
desired line and press the "Toggle Breakpoint" button or hit
Alt-B.
- Start the program by clicking the "Start" button. This will make
the program run right away. It will stop only if it hits any
break points on its execution path.
Alternatively, you can start the program by clicking the "Step
Into" button. This will start the program and stops it before it
is about to execute the first line of the program.
- When the program is stopped, you can select the menu "View -->
Stack Viewer". This shows the next command to be executed, as
well as the current procedure call stack. When the program is
running or idle, the stack view will display "no stack".
- When the program is stopped, you can examine the variables in
the current stack level. Here are some examples:
1. Open the test1.tcl prigram in the debugger.
2. Press the "Step Into" button.
3. Choose the "View --> Variable Viewer" menu.
4. Type "tcl_version" in the entry box, hit Return.
This will display the Tcl version in the text window next
to the ">>" button.
5. Set a breakpoint at the line "append a $args" inside the
procedure "appendArgs1".
6. Press "Continue"
7. When it stops, examine the variable "a".
8. Also, open the stack viewer. You will see the stack is:
appendArgs1
appendArgs
(global level)
- Try the debugger on the following files ONLY: test0.tcl,
and test1.tcl. DON'T USE IT ON ANY OTHER FILES UNLESS
YOU ARE ADVENTUROUS AND ARE WILLING TO TAKE ANY RISK. DON'T RUN
THE DEBUGGER ON ITSELG.
What can (and can't) I do with this release?
-------------------------------------------
- This is an alpha release. Don't expect to use it for your million
line Tcl project.
- You can debug a single file.
- No support for a command line interface. I.e., doesn't work
under tclsh.
- You can single step into inner blocks of the following commands:
if
while
proc
No support for other language constructs yet. E.g., no support
for Itcl. All Tcl, Itcl and Tix constructs will eventually be
supported.
- You can set break points on any arbitrary line. However, they
work only on the lines you can single step.
- You can restart a debugging session. However, Juice doesn't
clean up properly -- some procedures and variables may be left
behind. This will be fixed in the future by running the debugged
program in a separate process.
- Break points aren't clean up when you load in a different program.
- You can see only those variables in the current stack level.
- There is no "stop" button to stop a running Tcl script. This
will be fixed in the "separate process" debugger.
- No error checking.
- Return values of procs aren't returned correctly.
Please send bug reports and feature requests to
i...@cs.cornell.edu. However, I won't have time to respond to every
mail immediately. Please bear with me.
Enjoy!
Ioi Lam
i...@cs.cornell.edu