CRiSP Blog

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

Read more


"CRiSP is awesome, especially for anyone who likes to use Brief on the PC, and hates vi. I use it for all my code development and maintenance tasks. It's also great for editing binary files or very large files, or files which have very long lines, which cause other editors to choke."