Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Robert Dewar <dewar@adacore.com>
To: Jim Ingham <jingham@apple.com>
Cc: Vladimir Prus <ghost@cs.msu.su>,  gdb@sources.redhat.com
Subject: Re: MI: performance of getting stack arguments
Date: Wed, 19 Apr 2006 06:08:00 -0000	[thread overview]
Message-ID: <44455B87.2020800@adacore.com> (raw)
In-Reply-To: <EFF204DE-4C25-4F2A-A622-8605B2996BC9@apple.com>

Jim Ingham wrote:
> 
> 
> 
> 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.

Gosh I would find this horrible. For example, a very common thing for
me is to debug a crash in the gigi section of GNAT. I need to quickly
loook down the call stack to find the most recent reference to a
routine with a parameter gnat_node to find the corresponding node
in the front end tree. It would be very painful to iterate frame
by frame to find 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.

Yes, well I agree the GUI requirements are quite different indeed.
I only want to see the call stack when I need it and not all the
time (I don't use a GUI interface to GDB, I prefer to use it in
command line mode).
> 
> 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...

Seems reasonable to have a much more streamlined call stack visible all
the time, and a special command to decorate it with parameter values.
> 
> Jim



  reply	other threads:[~2006-04-18 21:35 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-18 16:40 Vladimir Prus
2006-04-18 16:45 ` Daniel Jacobowitz
2006-04-18 21:15   ` Jim Ingham
2006-04-19  7:55   ` Vladimir Prus
2006-04-19 16:13     ` Eli Zaretskii
2006-04-20  8:50     ` Daniel Jacobowitz
2006-04-26 14:10       ` Vladimir Prus
2006-04-26 14:59         ` Daniel Jacobowitz
2006-04-26 18:02           ` Vladimir Prus
2006-04-26 18:17             ` Daniel Jacobowitz
2006-04-18 19:11 ` Jim Ingham
2006-04-18 21:35   ` Robert Dewar
2006-04-18 21:37     ` Jim Ingham
2006-04-19  6:08       ` Robert Dewar [this message]
2006-04-19  7:30         ` Vladimir Prus
2006-04-19  6:11       ` Nick Roberts
2006-04-19  8:45         ` Eli Zaretskii
2006-04-19  9:02           ` Nick Roberts
2006-04-19 12:40       ` Eli Zaretskii
2006-04-20 10:22         ` Jim Ingham
2006-04-19  6:20   ` Vladimir Prus
2006-04-19  8:28 ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44455B87.2020800@adacore.com \
    --to=dewar@adacore.com \
    --cc=gdb@sources.redhat.com \
    --cc=ghost@cs.msu.su \
    --cc=jingham@apple.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox