This is the mail archive of the gdb-prs@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]

[Bug exp/13424] Display field offsets


http://sourceware.org/bugzilla/show_bug.cgi?id=13424

Tom Tromey <tromey at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at redhat dot com

--- Comment #1 from Tom Tromey <tromey at redhat dot com> 2011-11-22 19:26:26 UTC ---
(In reply to comment #0)
> Created attachment 6068 [details]
> Display C struct field offsets
> 
> For figuring out where things will be on a cache line (among other things), it
> would be useful to be able to display the byte offset of each field in a C/C++
> struct.

You may want to look at pahole.py as well:

http://permalink.gmane.org/gmane.comp.gdb.patches/58385

> That in itself seems pretty straightforward -- I'll attach a patch that does
> just that -- but I can't see a good way of enabling it. I wouldn't want it to
> be the default, since it's just too noisy. I would want it to be controlled by
> 'set print field-offsets on' or an optional parameter to 'ptype' or something.
> But it appears that typeprint.c only passes an integer 'show' parameter to the
> language-specific type printers. I could overload 'show' to be a set of flags
> (the existing 1,0,-1 would be full,summary,short, and I would have a new fields
> option to or in), but that would require updating all languages (and would
> break external compatibility, if there is such a thing.)
> 
> What would be the best way to implement something like this?

There is no external compatibility, you can change the API with impunity.
I would suggest a new flag to ptype, then passing around a
"const struct ptype_options *" to all functions needing it, where
ptype_options is a new struct you create.  It is more typing to add this
kind of thing, but it seems best to me, since it allows for future changes.
We did this kind of thing for value printing a while ago...

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


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