This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MI: performance of getting stack arguments





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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]