Changes between 2.4 and 2.4.p1
-
Bug Fix: Some proc breakpoints were not firing if they are defined in a
namespace.
-
Bug Fix: Some command line options were not taking effect.
-
Bug Fix: Accelerator keys stopped working (reported by Sanjay Shanker)
-
Bug Fix: Users were unable to load any source file that didn't have a .tcl
extension (reported by Holger Kanwischer)
-
Bug Fix: Tuba wasn't handling more than one level of symlinks to the installation
directory (reported and fixed by Harald Kirsch)
-
Bug Fix: Fixed a very obscure bug in the runtime instrumentation of dynamic
procs (apparently not obscure enough) (reported by Harald Kirsch)
-
Bug Fix: More fixes to the run time instrumenter.
-
Bug Fix for Windows: made wish80 the default interpreter (suggested by
Ronald J. Maddalena)
-
Bug Fix for Windows: the Show Console and Hide Console menu options under
Debugger now show and hide the console of the application being
debugged, not the Tuba GUI. (reported by Uwe Dierolf)
-
Administration: Tuba has moved to a new web site: http://www.geocities.com/SiliconValley/Ridge/2549/tuba/.
Made all the appropriate documentation changes.
-
Documentation Change: The main web page for Tuba underwent a small facelift.
Also, I included instructions on how to set up an association for session
files to bring up Tuba on Windows platforms.
Changes between 2.3 and 2.4
-
Internal Change: tuba GUI was moved into a namespace so it would work better
with other external libraries
-
Bug Fix: the caching of instrumented files and the logic of when to use
a cached file is now more intelligent. This fixes these bugs:
-
the proc list and list of valid breakpoint lines were empty when using
a cached file.
-
any option change that would result in a different instrumentation was
ignored and an old cache file pulled up.
-
Bug Fix: a state model was introduced and commands are activated and deactivated
according to the state. This will prevent, for instance, you from running
the "step into" command when there is no program loaded.
-
New Feature: You can enter proc exclusion expressions. Any proc that matches
any of the expressions (using [string match]), then that proc
is not instrumented and is effectively disabled from being stepped into
or setting a breakpoint inside. These exclusions are saved in your session
files. External changes:
-
Added command line option -e <excl_file> which
tells tuba to look in the file excl_file to get a list of proc exclusions
expressions.
-
Added entry in Options menu Proc Exclusions... This brings
up a dialog box to interactively edit the proc exclusion expressions.
-
Added section in user's guide discussing exclusions.
-
New Feature: Sessions. You can now save your debug sessions, and load them
back up, retaining the following pieces of information:
-
the program being debugged
-
program arguments
-
working directory
-
the interpreter
-
line breakpoints
-
proc breakpoints
-
proc exclusions
-
all options from the options menu
-
Session external changes:
-
New menu entries in the Debugger menu button:
-
Open Session
-
Save Session
-
Save Session As
-
New command line option -s <sessionfile> to start the
debugger with the given session.
-
Added section in user's guide discussing sessions.
-
There is a sample session file in examples/example0.ses. Load this with
the -s option or from Debugger -> Open Session...
-
Bug Fix: Tuba now asks you if it's okay to kill a running app via the Exit,
Load program, Restart, and Open Session menu commands.
-
Internal Change: I redesigned the format of the .tubarc startup file. Tuba
will detect the old version and convert it for you, but it will ask you
if you want to save the conversion. If you don't you'll get that message
every time you start up Tuba. Once you convert, the old tuba versions won't
be able to read it. A backup will be made if you save the converted startup
file.
-
New Feature: The Options menu has a Locations... entry.
This brings up a dialog box for entering default directories. Currently,
this includes:
-
cache directory
-
sessions directory
-
Bug Fix: I redesigned the status line (now two lines). Here are some new
behaviors:
-
Those loooong filenames now sit in a scrollable entry field so the window
doesn't keep growing and shrinking when the file changes
-
I added the current line number (finally)
-
I added a second line which contains the currently displayed file. This
should end the confusion about the original file entry, which is the current
debugger position, not necessarily what the file is in the window currently
-
The second line also contains the current session name, if there is one.
-
I removed the source level field. I needed more space and I'm not sure
anyone really cares what source level they're at. It might come back when
I revamp the whole GUI.
-
New Feature: You now have the option to keep existing breakpoints when
you restart a program.
-
Bug Fix: Made the breakpoint toggling logic smarter. Can now set breakpoints
on procs inside a namespace, and tuba now handles cases where a statement
and a proc appear on the same line; tuba brings up a dialog to ask exactly
you want done. There's an example of this in examples/example0.tcl
-
Bug Fix: Error interception changes:
-
The status line is now updated with the information when Tuba intercepts
an error
-
Tuba will NOT intercept an error if there is a catch somewhere
in the call stack. It assumes that the app will handle the error. This
behavior is configurable under the Options menu.
-
Bug Fix: Some Tk applications just drop off the end and let the implicit
event loop in wish's main() to wait for all the windows to be destroyed.
Tuba now detects this situation and will display a message that the app
has finished and is in an event loop.
-
Bug Fix: The current line (the source line highlighted in yellow) now goes
away while the app is running and comes back when the app is stopped. This
makes it easier for the user to tell who is running: the app or the debugger
GUI.
-
Bug Fix: Restarting and loading a new app will now kill all extra windows
like the proc list, stack, etc.
-
Bug Fix: Another parser bug fixed; the parsers were not properly handling
the token "\{".
Changes between 2.2 and 2.3
-
All changes from 2.2.p1, p2, and p3 added
-
Split out the instrumenter and made it a general purpose utility. This
will eventually be available as a separate package.
-
Instrumenter now supports caching of instrumented files. This dramatically
speeds up repeated debugging on files that don't change. Interface changes:
-
Added command line option -nc to do no caching
-
Added command line option -c <dir> to set dir
as the cache dir instead of default tuba/cache
-
Added command line option -purge to purge cache directory
before starting
-
Added entry in Options menu Caching to turn on/off instrumented
file caching
-
Now supports run-time instrumentation which provides superior parsing for
"tricky" Tcl code. Will slow down execution, though. Interface changes:
-
Added entries in Options menu to choose load-time or run-time instrumenting.
Changes to this will not take effect until the next load or restart.
-
Added command line option -R to choose run-time instrumenting
(load-time is the default)
-
The testinstrumenter.tcl script has been rewritten to be a generic
driver of the new instrumenter package. See the man page testinstrumenter.man.html
for the complete poop.
-
Parser language (Tcl or C) is now an option in the Options menu. Changes
to this do not take effect until the next load or restart.
-
Made the debugger source window taller.
-
More parser bug fixes.
-
Added an experimental replacement parser. This parser has the same interface,
and is slightly faster and much easier to maintain. It will be the standard
parser after it gets some "stick" time. The default is still the old parser.
Interface changes:
-
added new option -X to access the new parser
-
added new Option menu entry "Experimental parser" to turn on/off the use
of the experimental parser
-
Can set the working directory from command line using -w <dir>
option. If <dir> is "", then Tuba will use the
directory of the program being debugged.
-
Added a Tuba man page tuba.man.html.
-
Updated the Users Guide to reflect all changes in versions 2.2 and 2.3.
Changes between Tuba 2.2.p2 and 2.2.p3
-
Escaped newline parser fix was not put into the C++ parser. This patch
rectifies this.
Changes between Tuba 2.2.p1 and 2.2.p2
-
Removed advupdate.tcl and advupdate.so from the distribution as it is no
longer needed.
-
Fixed a parser bug regarding ending brackets inside a quote when beginning
bracket is outside quotes.
-
Fixed referenced directory name in toplevel README.
Changes between 2.2 and 2.2.p1
-
Bug Fix: balloonhelp windows were coming up in upper left corner on Windows.
-
New Feature: The windows version now has show/hide console menu options
under the Debugger menu button (provided by Scott Beasley)
-
New Feature: Tuba now remembers your last working directory and arguments
entries when you loaded the program. The restart dialog will reflect these
(provided by Scott Beasley).
-
New Feature: Key accelerators for the stepping commands (provided by Scott
Beasley). Currently these are hardcoded; they will be easily configurable
in a future release. Here are the mappings:
-
F5 - Continue
-
F6 - Step Into
-
F7 - Step Over
-
F8 - Stop
-
Bug Fix: Couldn't load programs from paths with spaces in them, or use
an interpreter that lived in a path with a space.
-
Bug Fix: Tuba was interfering with applications that had file event handlers.
Had to redesign the mechanism of getting the STOP command. Now uses an
extra port (uses original port + 1).
-
Bug Fix: The instrumenter sometimes was not properly handling an escaped
newline. Fixed both the Tcl and C++ parsers.
-
New Feature: After selecting a program in the load program dialog via the
browse button, the working directory field is automatically filled in with
the directory of the program (provided by Scott Beasley).
-
New Feature: The load program and restart dialogs now have Browse buttons
for the interpreter field.