Re: MI: performance of getting stack arguments

Jim Ingham
2006-04-18T21:15:50Z

On Apr 18, 2006, at 12:11 PM, Robert Dewar wrote:

> Jim Ingham wrote:
>> Do you really have a UI that shows the stack arguments for ALL the
>> frames on the stack? That's very unusual (and visually a bit
>> overwhelming, I would imagine). The usual stack display shows the
>> stack with just the function names. Then clicking on any given
>> stack will populate the arguments for that frame, fill the source
>> window with the source for that frame, etc... This way, you only
>> need to fetch the arguments for the bottom-most frame on the stack
>> when you stop stepping. You would only fetch the other stack
>> arguments if the user specifically requests them.
>
> The ordinary bt from gdb gives this info, and it would be a pain
> not to have it!
>

I dunno. I find that having a really simple clean stack listing with
just function names makes it much easier to tell where I am in the
program. Most of the time that's what I want to see, not what the
third argument to the function 10 frames up on the stack was. If I
want that, I don't find it a problem to dial it up. And in the GUI
all you have to do is click on the frame to see the source &
arguments. This seems to work pretty well for folks, at least we get
lots of suggestions from our users, but nobody's ever asked us to
change this.

Anyway, this is a "to each his own" kind of thing. But just keep in
mind, when you are implementing a GUI debugger that anything you show
in the UI you are pledging to update every time a step is completed.
And most folks are pretty sensitive about how long it takes for each
step to complete. So you do need to be a bit conservative about what
you display by default. Adding to this, gdb does get slow as
programs get large, which makes it even more important to be judicious.

Also, in a GUI much more stuff is visible at once, so if each element
is too complex then the overall result is noisy and hard to use.
Visual Studio used by default to show a whole bunch of junk in the
stack window (pc, args, etc.) and way back when I used it I found it
really hard to look at for just this reason. According to the 2005
Online docs, you can turn all the other info off and display just the
function name if you want...

Jim