From: Arnaldo de Melo <acme-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Mike Snitzer <snitzer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: dwarves-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: pahole BRAIN FART ALERT on F12
Date: Mon, 23 Nov 2009 22:10:47 -0200 [thread overview]
Message-ID: <20091124001047.GF15547@ghostprotocols.net> (raw)
In-Reply-To: <20091123225615.GD10860-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 1329 bytes --]
Em Mon, Nov 23, 2009 at 05:56:15PM -0500, Mike Snitzer escreveu:
> On Mon, Nov 23 2009 at 5:49pm -0500,
> Arnaldo de Melo <acme-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
> > Em Mon, Nov 23, 2009 at 05:17:03PM -0500, Mike Snitzer escreveu:
> > > Unfortunately, when I run pahole against lvm2 I'm getting many BRAIN
> > > FART ALERTs on F12 x86_64 (dwarves-1.7-5.x86_64). I had a look at your
> > > OLS 2007 "7 dwarves" paper and figured I'd try your minimalist
> > > swiss_cheese example, this is what I get:
> > > $ pahole swiss_cheese
> > > struct cheese {
> > > char name[17]; /* 0 17 */
> > > short int age; /* 0 2 */
> > > char type; /* 0 1 */
<SNIP>
> > > /* BRAIN FART ALERT! 48 != 17 + 0(holes), diff = 31 */
> > > };
> > You should, I think this is related to some recent elfutils changes that
> > Mark Wieelard warned me about it but I hadn't time yet to act upon, will
> > do so tomorrow, thanks for the report!
> BTW, I did try the latest git version from:
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/pahole.git
> It didn't work either.
Can you try with the attached patch applied against the git repo
version?
Best Regards,
- Arnaldo
[-- Attachment #2: attr_offset.patch --]
[-- Type: text/plain, Size: 794 bytes --]
diff --git a/dwarf_loader.c b/dwarf_loader.c
index 44605a8..3b58ecb 100644
--- a/dwarf_loader.c
+++ b/dwarf_loader.c
@@ -242,9 +242,23 @@ static Dwarf_Off attr_offset(Dwarf_Die *die, const uint32_t name)
Dwarf_Attribute attr;
Dwarf_Block block;
- if (dwarf_attr(die, name, &attr) != NULL &&
- dwarf_formblock(&attr, &block) == 0)
- return dwarf_expr(block.data, block.length);
+ if (dwarf_attr(die, name, &attr) == NULL)
+ return 0;
+
+ switch (dwarf_whatform(&attr)) {
+ case DW_FORM_data1:
+ case DW_FORM_data2:
+ case DW_FORM_sdata:
+ case DW_FORM_udata: {
+ Dwarf_Word value;
+ if (dwarf_formudata(&attr, &value) == 0)
+ return value;
+ break;
+ }
+ default:
+ if (dwarf_formblock(&attr, &block) == 0)
+ return dwarf_expr(block.data, block.length);
+ }
return 0;
}
next prev parent reply other threads:[~2009-11-24 0:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-23 22:17 pahole BRAIN FART ALERT on F12 Mike Snitzer
[not found] ` <20091123221703.GA10860-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-23 22:49 ` Arnaldo de Melo
[not found] ` <20091123224921.GA9654-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2009-11-23 22:56 ` Mike Snitzer
[not found] ` <20091123225615.GD10860-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-24 0:10 ` Arnaldo de Melo [this message]
[not found] ` <20091124001047.GF15547-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2009-11-24 13:28 ` Mike Snitzer
[not found] ` <20091124132831.GA31662-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-24 14:52 ` Arnaldo de Melo
[not found] ` <20091124145212.GC9654-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2009-11-24 15:18 ` Mike Snitzer
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=20091124001047.GF15547@ghostprotocols.net \
--to=acme-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=dwarves-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=snitzer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.