* pahole regression: -a no longer works?
@ 2009-06-26 1:29 Samuel Bronson
[not found] ` <20090627144405.GE4981@ghostprotocols.net>
0 siblings, 1 reply; 5+ messages in thread
From: Samuel Bronson @ 2009-06-26 1:29 UTC (permalink / raw)
To: dwarves-u79uwXL29TY76Z2rM5mHXA
I've just noticed that pahole's -a flag does not seem to result in
typedef'd structs being printed anymore.
For example, with Debian's dwarves 1.3-1, on a self-compiled libVEX
from valgrind, I see loads of typedef'd struct types like this one:
typedef struct {
IRTypeEnv * type_env; /* 0 4 */
HReg * vregmap; /* 4 4 */
Int n_vregmap; /* 8 4 */
HInstrArray * code; /* 12 4 */
Int vreg_ctr; /* 16 4 */
/* size: 20, cachelines: 1 */
/* last cacheline: 20 bytes */
} ISelEnv; /* definitions: 1 */
but in the latest, I get only the following three:
struct _IRConst {
IRConstTag tag; /* 0 4 */
union {
Bool U1; /* 1 */
UChar U8; /* 1 */
UShort U16; /* 2 */
UInt U32; /* 4 */
ULong U64; /* 8 */
Double F64; /* 8 */
ULong F64i; /* 8 */
UShort V128; /* 2 */
} Ico; /* 4 8 */
/* size: 12, cachelines: 1, members: 2 */
/* last cacheline: 12 bytes */
};
struct _IRExpr {
IRExprTag tag; /* 0 4 */
union {
struct {
Int binder; /* 4 4 */
} Binder; /* 4 */
struct {
Int offset; /* 4 4 */
IRType ty; /* 8 4 */
} Get; /* 8 */
struct {
IRRegArray * descr; /* 4 4 */
IRExpr * ix; /* 8 4 */
Int bias; /* 12 4 */
} GetI; /* 12 */
struct {
IRTemp tmp; /* 4 4 */
} RdTmp; /* 4 */
struct {
IROp op; /* 4 4 */
IRExpr * arg1; /* 8 4 */
IRExpr * arg2; /* 12 4 */
IRExpr * arg3; /* 16 4 */
IRExpr * arg4; /* 20 4 */
} Qop; /* 20 */
struct {
IROp op; /* 4 4 */
IRExpr * arg1; /* 8 4 */
IRExpr * arg2; /* 12 4 */
IRExpr * arg3; /* 16 4 */
} Triop; /* 16 */
struct {
IROp op; /* 4 4 */
IRExpr * arg1; /* 8 4 */
IRExpr * arg2; /* 12 4 */
} Binop; /* 12 */
struct {
IROp op; /* 4 4 */
IRExpr * arg; /* 8 4 */
} Unop; /* 8 */
struct {
IREndness end; /* 4 4 */
IRType ty; /* 8 4 */
IRExpr * addr; /* 12 4 */
} Load; /* 12 */
struct {
IRConst * con; /* 4 4 */
} Const; /* 4 */
struct {
IRCallee * cee; /* 4 4 */
IRType retty; /* 8 4 */
IRExpr * * args; /* 12 4 */
} CCall; /* 12 */
struct {
IRExpr * cond; /* 4 4 */
IRExpr * expr0; /* 8 4 */
IRExpr * exprX; /* 12 4 */
} Mux0X; /* 12 */
} Iex; /* 4 20 */
/* size: 24, cachelines: 1, members: 2 */
/* last cacheline: 24 bytes */
};
struct _IRStmt {
IRStmtTag tag; /* 0 4 */
union {
struct {
} NoOp; /* 0 */
struct {
Addr64 addr; /* 4 8 */
Int len; /* 12 4 */
} IMark; /* 12 */
struct {
IRExpr * base; /* 4 4 */
Int len; /* 8 4 */
IRExpr * nia; /* 12 4 */
} AbiHint; /* 12 */
struct {
Int offset; /* 4 4 */
IRExpr * data; /* 8 4 */
} Put; /* 8 */
struct {
IRRegArray * descr; /* 4 4 */
IRExpr * ix; /* 8 4 */
Int bias; /* 12 4 */
IRExpr * data; /* 16 4 */
} PutI; /* 16 */
struct {
IRTemp tmp; /* 4 4 */
IRExpr * data; /* 8 4 */
} WrTmp; /* 8 */
struct {
IREndness end; /* 4 4 */
IRExpr * addr; /* 8 4 */
IRExpr * data; /* 12 4 */
} Store; /* 12 */
struct {
IRDirty * details; /* 4 4 */
} Dirty; /* 4 */
IRExpr * data; /* 8 4 */
} WrTmp; /* 8 */
struct {
IREndness end; /* 4 4 */
IRExpr * addr; /* 8 4 */
IRExpr * data; /* 12 4 */
} Store; /* 12 */
struct {
IRDirty * details; /* 4 4 */
} Dirty; /* 4 */
struct {
IRMBusEvent event; /* 4 4 */
} MBE; /* 4 */
struct {
IRExpr * guard; /* 4 4 */
IRJumpKind jk; /* 8 4 */
IRConst * dst; /* 12 4 */
} Exit; /* 12 */
} Ist; /* 4 16 */
/* size: 20, cachelines: 1, members: 2 */
/* last cacheline: 20 bytes */
};
This should be pretty easy to reproduce, but if not I could provide
you with an .o file... I'd bisect it myself if it weren't for the fact
that libebl.a is no longer available on Debian squeeze/sid, which
means I can't build without patching the cmake :-(
--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: pahole regression: -a no longer works?
[not found] ` <20090627144405.GE4981-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
@ 2009-06-27 15:44 ` Samuel Bronson
[not found] ` <87eit5lm0u.wl%naesten-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Samuel Bronson @ 2009-06-27 15:44 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo; +Cc: dwarves
Oops, I sent this to just Arnaldo the first time... sorry, Arnaldo!
On Sat, Jun 27, 2009 at 10:44 AM, Arnaldo Carvalho de
Melo<acme-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> wrote:
> What about my suggestion to change the proposed patch to check if it is
> running on a debian system and if so to avoid checking for libebl?
Well, that wouldn't really help me with the bisection, though now that
I think about it I could have done that on one of the machines in my
school's CS lab, where I had to build the elfutils libraries myself
anyway...
Anyway, about that idea: Debian hasn't always lacked libebl -- rolling
it into libdw is a fairly recent thing, and back when it existed, both
libdw and libebl were provided as static libraries, so on systems
that still have it, it will probably be necessary to link it in. Not
to mention that having to conditionalize this on the distribution
feels kind of icky, especially considering how hard-to-follow the
REDHAT/FEDORA conditional already is.
Speaking of the REDHAT/FEDORA conditional,
(a) why doesn't it have a comment explaining what it's for? -- that
is, what is different on redhat/fedora, and what it does to compensate
for them
(b) why is it *after* the check for the "dwfl_module_build_id"
symbol, so that the REDHAT/FEDORA stuff can't fix up the missing
variables and allow the symbol check a chance to run?
--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: pahole regression: -a no longer works?
[not found] ` <87eit5lm0u.wl%naesten-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2009-06-27 15:50 ` Arnaldo Carvalho de Melo
2009-06-27 16:34 ` Arnaldo Carvalho de Melo
1 sibling, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-06-27 15:50 UTC (permalink / raw)
To: Samuel Bronson; +Cc: dwarves
Em Sat, Jun 27, 2009 at 11:44:01AM -0400, Samuel Bronson escreveu:
> Oops, I sent this to just Arnaldo the first time... sorry, Arnaldo!
>
> On Sat, Jun 27, 2009 at 10:44 AM, Arnaldo Carvalho de
> Melo<acme-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org> wrote:
>
> > What about my suggestion to change the proposed patch to check if it is
> > running on a debian system and if so to avoid checking for libebl?
>
> Well, that wouldn't really help me with the bisection, though now that
I see, you would have to apply the patch at each bisection point and
remove it before going forward...
But anyway, you don't need to bisect it now, I've fixed it already :)
Please do a git pull and check if everything is ok now.
> I think about it I could have done that on one of the machines in my
> school's CS lab, where I had to build the elfutils libraries myself
> anyway...
> Anyway, about that idea: Debian hasn't always lacked libebl -- rolling
> it into libdw is a fairly recent thing, and back when it existed, both
> libdw and libebl were provided as static libraries, so on systems
> that still have it, it will probably be necessary to link it in. Not
> to mention that having to conditionalize this on the distribution
> feels kind of icky, especially considering how hard-to-follow the
> REDHAT/FEDORA conditional already is.
>
> Speaking of the REDHAT/FEDORA conditional,
>
> (a) why doesn't it have a comment explaining what it's for? -- that
> is, what is different on redhat/fedora, and what it does to compensate
> for them
I'll add the comment now
> (b) why is it *after* the check for the "dwfl_module_build_id"
> symbol, so that the REDHAT/FEDORA stuff can't fix up the missing
> variables and allow the symbol check a chance to run?
lemme check...
- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: pahole regression: -a no longer works?
[not found] ` <87eit5lm0u.wl%naesten-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-06-27 15:50 ` Arnaldo Carvalho de Melo
@ 2009-06-27 16:34 ` Arnaldo Carvalho de Melo
1 sibling, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-06-27 16:34 UTC (permalink / raw)
To: Samuel Bronson; +Cc: dwarves
Em Sat, Jun 27, 2009 at 11:44:01AM -0400, Samuel Bronson escreveu:
> Speaking of the REDHAT/FEDORA conditional,
>
> (a) why doesn't it have a comment explaining what it's for? -- that
> is, what is different on redhat/fedora, and what it does to compensate
> for them
>
> (b) why is it *after* the check for the "dwfl_module_build_id"
> symbol, so that the REDHAT/FEDORA stuff can't fix up the missing
> variables and allow the symbol check a chance to run?
Just added comments for both cases, please take a look and see if it
makes it clear for you:
commit f96099b4c519e83ab2421c2e7660e132f63ddec7
Author: Arnaldo Carvalho de Melo <acme-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Date: Sat Jun 27 13:32:20 2009 -0300
cmake: Add comments explaining build_id and fedora/rh detection
Suggested-by: Samuel Bronson <naesten-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
diff --git a/cmake/modules/FindDWARF.cmake b/cmake/modules/FindDWARF.cmake
index 76cdb3f..f4feec4 100644
--- a/cmake/modules/FindDWARF.cmake
+++ b/cmake/modules/FindDWARF.cmake
@@ -47,6 +47,10 @@ if (DWARF_INCLUDE_DIR AND LIBDW_INCLUDE_DIR AND DWARF_LIBRARY AND ELF_LIBRARY AN
set(DWARF_LIBRARIES ${DWARF_LIBRARY} ${ELF_LIBRARY} ${EBL_LIBRARY})
set(CMAKE_REQUIRED_LIBRARIES ${DWARF_LIBRARIES})
+ # check if libdw have the dwfl_module_build_id routine, i.e. if it supports the buildid
+ # mechanism to match binaries to detached debug info sections (the -debuginfo packages
+ # in distributions such as fedora). We do it against libelf because, IIRC, some distros
+ # include libdw linked statically into libelf.
check_library_exists(elf dwfl_module_build_id "" HAVE_DWFL_MODULE_BUILD_ID)
else (DWARF_INCLUDE_DIR AND LIBDW_INCLUDE_DIR AND DWARF_LIBRARY AND ELF_LIBRARY AND EBL_LIBRARY)
set(DWARF_FOUND FALSE)
@@ -63,6 +67,9 @@ if (DWARF_FOUND)
endif (NOT DWARF_FIND_QUIETLY)
else (DWARF_FOUND)
if (DWARF_FIND_REQUIRED)
+ # Check if we are in a Red Hat (RHEL) or Fedora system to tell
+ # exactly which packages should be installed. Please send
+ # patches for other distributions.
find_path(FEDORA fedora-release /etc)
find_path(REDHAT redhat-release /etc)
if (FEDORA OR REDHAT)
--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: pahole regression: -a no longer works?
@ 2009-06-27 15:36 Arnaldo Carvalho de Melo
0 siblings, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-06-27 15:36 UTC (permalink / raw)
To: Samuel Bronson; +Cc: dwarves-u79uwXL29TY76Z2rM5mHXA
Em Thu, Jun 25, 2009 at 09:29:28PM -0400, Samuel Bronson escreveu:
> I've just noticed that pahole's -a flag does not seem to result in
> typedef'd structs being printed anymore.
>
> For example, with Debian's dwarves 1.3-1, on a self-compiled libVEX
> from valgrind, I see loads of typedef'd struct types like this one:
>
> typedef struct {
> IRTypeEnv * type_env; /* 0 4 */
> HReg * vregmap; /* 4 4 */
> Int n_vregmap; /* 8 4 */
> HInstrArray * code; /* 12 4 */
> Int vreg_ctr; /* 16 4 */
>
> /* size: 20, cachelines: 1 */
> /* last cacheline: 20 bytes */
> } ISelEnv; /* definitions: 1 */
>
> but in the latest, I get only the following three:
<SNIP>
Yeah, that is a regression, I'll fix it, till then just use "pdwtags",
it will print all the tags, including the structs that have no name.
> This should be pretty easy to reproduce, but if not I could provide
> you with an .o file... I'd bisect it myself if it weren't for the fact
> that libebl.a is no longer available on Debian squeeze/sid, which
> means I can't build without patching the cmake :-(
What about my suggestion to change the proposed patch to check if it is
running on a debian system and if so to avoid checking for libebl?
- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-06-27 16:34 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-26 1:29 pahole regression: -a no longer works? Samuel Bronson
[not found] ` <20090627144405.GE4981@ghostprotocols.net>
[not found] ` <20090627144405.GE4981-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2009-06-27 15:44 ` Samuel Bronson
[not found] ` <87eit5lm0u.wl%naesten-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-06-27 15:50 ` Arnaldo Carvalho de Melo
2009-06-27 16:34 ` Arnaldo Carvalho de Melo
2009-06-27 15:36 Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).