This is the mail archive of the gdb-patches@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: Variable objects: references formatting


 > > Version 1.59 has been in the repository for over a month, so how come this
 > > patch is against 1.58?
 > 
 > I've at least 2 other changes to that file, and corresponding patches were 
 > neither applied nor rejected, AFAICT. I'd rather not update the file yet.

And I would think people on this mailing list would rather not work out
the patch relative to current CVS in order to apply.  I know it worked in
this case (after a shift) but it wouldn't in general.

 > > > diff -u -r1.58 varobj.c
 > > > @@ -2055,8 +2219,14 @@
 > >
 > > I'm not used to unified diffs, but as insertion appears to be done at the
 > > same place why is it not something like:
 > >
 > > @@ -2055,8 +2055,14 @@
 > 
 > I'm sorry, I don't understand that question. This hunk was cut from a larger 
 > diff, maybe that explains something?

Similarly, in general, the patch presumably won't apply properly.

 > > Most importantly, however, the preamble is about -data-evaluate-expression
 > > but AFAICS this doesn't call c_value_of_variable.
 > 
 > Sure it does. KDevelop uses -data-evaluate-expression to fetch values, and 
 > with this patch the value of "reference to structure" is rendered as "...", 
 > just like I'd want.

I could say "Oh know it doesn't!" but, since this is not a pantomime, could
you please give me a simple example of where it does call c_value_of_variable.
My loose reasoning is that the variable in "c_value_of_variable" refers to
variable object and -data-evaluate-expression doesn't use one.  What argument
do you give it?

 > > I have tested the output of -data-evaluate-expression on pointers to
 > > typedeffed structures and found that with the latter I get a {}-enclosed
 > > list of members with gcc 3.2 and {...} with gcc 4.1.  More generally, I
 > > have found that gcc 4.1 treats typedefs differently, which leads to errors
 > > with variable objects.
 > 
 > How *pointers* to typedeffed structures are relevant to this patch? Now, maybe 
 > we need to call 'check_typedef' in one more place -- after stripping 
 > reference, to make sure typedefs to structures are also rendered as "...".
 > 
 > Is that what you're saying? And what errors do you see with gcc 4.1?

No, I just didn't appreciate the difference between pointers and references in
GDB.  The discrepancy I "found" was due to me mistyping.  However I do see a
problem with gcc 4.1 and variable objects where GDB keeps telling me:

   Child of parent whose type does not allow children

when it didn't when my program was compiled with gcc 3.2.

-- 
Nick                                           http://www.inet.net.nz/~nickrob


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