Messages in this thread | | | Date | Thu, 14 Apr 2022 08:38:54 -0700 | From | Josh Poimboeuf <> | Subject | Re: [PATCH 02/18] objtool: Support data symbol printing |
| |
On Thu, Apr 14, 2022 at 05:31:57PM +0200, Peter Zijlstra wrote: > On Thu, Apr 14, 2022 at 08:21:48AM -0700, Josh Poimboeuf wrote: > > On Thu, Apr 14, 2022 at 09:05:47AM +0200, Peter Zijlstra wrote: > > > On Wed, Apr 13, 2022 at 04:19:37PM -0700, Josh Poimboeuf wrote: > > > > > > > @@ -34,8 +37,8 @@ static inline char *offstr(struct section *sec, unsigned long offset) > > > > > > > > str = malloc(strlen(name) + 20); > > > > > > > > - if (func) > > > > - sprintf(str, "%s()+0x%lx", name, name_off); > > > > + if (sym) > > > > + sprintf(str, "%s%s+0x%lx", name, is_text ? "()" : "", name_off); > > > > else > > > > sprintf(str, "%s+0x%lx", name, name_off); > > > > > > So I like the patch, except that "()" thing is something where we differ > > > from the kernel's %ps format and I've cursed it a number of times > > > because I then have to manually edit (iow remove) things when pasting it > > > in various scripts etc.. > > > > Oh, hm, that's true. I can remove them if you prefer. > > Yeah, I think taking it out is best, easier if we're consistent with %ps > for everybody.
Will do.
> > > That said, it totally makes sense to differentiate between a text and > > > data symbol this way :/ > > > > Yes, but if we're keeping the "Add sec+offset to warnings" patch then > > that distinction is already (kind of) being made by showing the data > > section name. And the data symbol warnings should be rare. > > Yes, I'd not seen that yet, what's that for? The Changelog alludes to > something, but I don't think it actually does get used later.
Nick had asked for something like that, it's just a way to avoid doing math every time we look at a warning, i.e. to convert func+offset to sec+offset.
But it's kind of ugly and I'm not 100% happy with it.
Maybe it should be behind an option (--sec-offsets)?
-- Josh
| |