UDB To-Do List

This page tracks anything we know is needed in order for UDB to become the full-featured Unicon debugger that it was intended to be.

Improve UDB Support for Objects/Classes

Support Debugging Threads

This probably involves extending the Unicon monitoring and threads facilities. There likely need to be events for creation, communication, and activations/transfers of control. There needs to be an execution model that makes sense. For example, if you hit a "breakpoint" in one thread, how are all threads stopped? Do you have to have one monitor per thread, or do all threads report events to the same monitor, or what?

Pattern Debugging

Miscellany

Some of these might be lower hanging fruit, others not so much.
fix the redirection bug
run <data/foo.dat doesn't seem to work
echo suppression
udb should check what kind of tty it is on and/or figure out it is on a tty that is not raw and should not echo a whole line when each character is typed, e.g. inside an emacs subshell, or an ide session.
command completion
udb already accepts short versions of commands like pr for print. But if you are not sure if an abbreviation is for the command you think it is, perhaps ESC or similar should complete your command for you.
automating -line detection
detect whether we are talking to a real console, and auto-enable -line mode on pseudo-tty's, e.g. inside emacs. Problems here include the fact that ordinary Terminal consoles on Linux seem to use pseudo-ttys, so how do we tell the difference?
context-based help for things like "break ?" and "break f ?"
making help easier to get is a good idea.
graphics programs
debugging graphics programs is usually more difficult than debugging textual programs, both because the "action" is not tied to the console, and because it is hard to single-step through acres and acres of GUI class library code. How might udb help with this?
CGI / web applications
programs run at the behest of a web server are often harder to debug, since end users don't have access to their stderr or stdout. How hard would it be for such a program to have an attached udb process that gets the debugger access, possibly via an X server connection?
debugger tutorial for non-gdb users
this is a document, or possibly a scripted interactive tutorial, for generic Unicon users who are not big C/C++ programmers. The tutorial should discuss how to change variables in mid-execution, so as to change the outcome or test whether a different value would work in a given situation. Do you say "p x=15" or something else? Why would it be a "p" (that is, print) command?
check control-C behavior
Control-C is supposed to break out of a program execution and back to the debugger prompt in a usable way. udb occasionally has hanging problems, or control-C might kill the whole execution and udb, instead of getting you to a prompt.
visualization support?
Jeffery naturally would like to extend udb's existing capability to run "agents" for automatic debugging with examples of agents that draw pictures of what's going on while the program runs. In other words, extend this (agents) existing feature's value
GUI front-end??
this is the least of our sponsor's priorities