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