From: Russell Browne (russ_at_amc.com)
Date: Fri Mar 17 2000 - 19:41:40 GMT
Bob Carragher wrote:
> By the way, Ian Edward's suggestion of using Purify is
> practically useful, but it doesn't help with proseletizing
> UPS. ...
To investigate infinite recursion, set a breakpoint in the offending
function and edit to look like
static int i=0; if (i++ > 1000) #stop;
The should break the process well into the offending call, even if
there are a few valid calls first, but well before the stack overflows.
Ask your gdb fans how to do that!
I think how well it handles infinite recursion is a rather
minor point in choosing a debugger. Some ups features that
I find far superior to other debuggers I have tried:
The point and click method for displaying a variable or looking
at a function's source. Other debuggers want you to highlight
the function or variable then press a button to say what you
want to do with it.
You can look at variables or expressions at all levels of the
stack at once. Other debuggers require you to select a stack
frame then it will show you the variables at that level of
the stack.
The method for creating conditional breakpoints is far more intuitive
than other debuggers I have used. It can also be used to insert
quick fixes by setting a variable.
I don't know of any other debugger that has something like $printf.
This is very handy for bugs that have some timing dependency so
that they go away when you stop the process to investigate them.
The methods for deleting or disabling breakpoints are
friendlier than for other debuggers. Most debuggers hide the
list of breakpoints in some popup dialog where they are hard to find.
The snapshot feature is handy; beats hand written notes! I don't
know of any similar feature in any other debugger.
The behavior of "next" after an upstack is what I want.
Most debuggers insist on doing the "next" at the lowest stack
frame instead of the current frame. ( Many debuggers have a
"step out" button, which ups is lacking. But "step out" buttons only
go up a single stack frame; the ups implementation of "next" can go
up any number of stack frames.)
The methods for formatting variables (hex/decimal/etc.), and for examining
arrays and structures are nicer than for other debuggers I've used.
The features for saving of state and for saving and restoring breakpoints
are nicer than other debuggers. I'm not aware of any similar feature
for gdb/ddd. Other debuggers that do save state (e.g. Visual Studio)
go too far and restore breakpoints whether you want them or not.
I call this restoring the user's state of confusion from the last run.
Russ Browne
Applied MicroSystems Corp.
This archive was generated by hypermail 2.1.4 : Wed Feb 13 2002 - 21:51:33 GMT