Saturday, 4 September 2010

Dtrace weirdness (really, me weirdness)

I spent much of the week chasing an issue in why the usdt/c example
wouldnt compile or build. I hadnt really changed anything in this area, yet
an invalid simple.o was being created (invalid in an ELF sense).

I tracked down a partial reason to be that in calling libelf.a, the enum's
we pick up from the elf.h header file(s) didnt agree with what libelf.a was
expecting. (Very weird - looks like the Solaris elf header and Linux header
dont agree).

What I dont understand is why this suddenly hit. I am thinking one of my
Ubuntu updates caused a discrepancy to the header and libraries, and I have
been chasing my tail.

Early on in dtrace/linux evolution, I did a bunch of work to dt_link.c
to all USDT probes to work, and I was happy with my changes. Just now, I reverted
all of them, and my USDT problems went away.

Something fishy is going on here - so I urge caution when I do the next distro.
It maybe my build environment is polluted/broken and that may cause differences
between what I observe and what dtrace users see on their systems.

Post created by CRiSP v10.0.2a-b5887

No comments:

Post a Comment