From: Nick Roberts <nickrob@snap.net.nz>
To: Vladimir Prus <vladimir@codesourcery.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: -var-update @
Date: Thu, 27 Mar 2008 05:17:00 -0000 [thread overview]
Message-ID: <18411.11710.597524.273860@kahikatea.snap.net.nz> (raw)
In-Reply-To: <200803261754.10513.vladimir@codesourcery.com>
Vladimir Prus writes:
>
> I've checked it the attached patch which allows one to issue
>
> -var-update @
>
> and have all @-varobjs (or floating varobjs, as Nick suggested to name them),
> updated. I believe this is the only reasonable way to make @ varobjs, which
> are not bound to thread/frame/block to adequately work in MT program.
This doesn't seem right to me but then there hasn't been any discussion.
According to the manual in "-var-create - * EXPRESSION", "*" means "current
frame" (it's actually the selected frame because if you go up a frame, you can
create a variable object there, but as I say the manual mixes the terms).
Whereas in "-var-update *", "*" means "all variable objects", as in a wildcard
character.
So I think it's wrong to equate the two uses of "*" which looks like what
you've done with "@".
> Otherwise,
> if frontend switches thread or frame and wishes to update floating varobjs,
> it should either to "-var-update *", which is extra work, or update varobjs
> one-by-one, which is also not very nice.
I think that's exactly how it's mean't to work, although it's currently broken.
The usual use case that's cited is recursive functions.
Using "-var-create - @ EXPRESSION" if there are two frames and you have "int
myvar" in one and "float myvar" in the other, when you change frame, you get
something like:
-var-update --all-values *
^done,changelist=[{name="var1",in_scope="true",new_type="float",new_num_children="0"},
which is missing the value field.
with ints in both frames, moving up from the frame the variable object was
created in I get something like:
-var-update --all-values *
^done,changelist=[{name="var2",value="7",in_scope="true",type_changed="false"}]
(gdb)
up
&"up\n"
~"#1 0x08048a00 in main (argc=-72539512, argv=0xbfca8f74) at myprog.c:232\n"
~"232\t asdf = myprint (2*i, *(a + i) /* hello */);\n"
^done
(gdb)
-var-update --all-values *
^done,changelist=[{name="var2",value="-1077244176",in_scope="true",type_changed="false"}]
when the value is really 0 in the upper frame.
I think we should fix (and document) such floating variable objects but I
really don't think we want a second command to update them.
--
Nick http://www.inet.net.nz/~nickrob
next prev parent reply other threads:[~2008-03-27 5:17 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-26 14:54 Vladimir Prus
2008-03-27 5:17 ` Nick Roberts [this message]
2008-03-27 7:00 ` Vladimir Prus
2008-03-27 9:54 ` Nick Roberts
2008-03-27 10:38 ` Vladimir Prus
2008-03-27 13:25 ` Marc Khouzam
2008-03-27 13:37 ` Vladimir Prus
2008-03-27 20:58 ` Nick Roberts
2008-03-28 14:32 ` Marc Khouzam
2008-03-28 16:22 ` Vladimir Prus
2008-03-28 16:33 ` Marc Khouzam
2008-04-01 13:37 ` André Pönitz
2008-04-01 13:56 ` Marc Khouzam
2008-04-01 14:30 ` André Pönitz
2008-04-03 19:10 ` Daniel Jacobowitz
2008-04-03 19:31 ` Daniel Jacobowitz
2008-04-03 20:05 ` Michael Snyder
2008-03-29 5:16 ` Nick Roberts
2008-03-29 6:38 ` Vladimir Prus
2008-03-30 3:54 ` Nick Roberts
2008-04-03 18:55 ` Vladimir Prus
2008-04-03 21:30 ` Nick Roberts
2008-04-04 11:45 ` Vladimir Prus
2008-04-11 22:01 ` Vladimir Prus
2008-04-11 23:22 ` Nick Roberts
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=18411.11710.597524.273860@kahikatea.snap.net.nz \
--to=nickrob@snap.net.nz \
--cc=gdb-patches@sources.redhat.com \
--cc=vladimir@codesourcery.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