Sunday, 23 January 2011

dtrace + libelf

Something funny happened on the way to the forum.

Dtrace (the user command) relies on the libelf library to allow
introspection of target applications and for the USDT code for creating
probable libraries.

The naked Ubuntu (and many other distros) provide a core set of packages
to work, but not the development packages. The dtrace release tells you
what you need.

What I have found is that there are so many libelfs out there and they
do not all agree. Eg. some include ELF_C_MMAP_READ and some dont. Worse,
the enums for the various values are different, leading to potential
of an app build with one set of headers causing strange and difficult to
debug error codes from elf_begin() and friends.

I need to add some better autodetection to the dtrace code, or, one
possibilty is to move totally away from libelf and use the elf library
I put together for the CRiSP/elfrewrite code. (Am loathe to do that, but
it would sever any dependencies and provide better support on old/very
old systems).

I put out a new release today to fix some more build regressions, but
I have someone reporting the failing to build the "simple"/USDT example
code. If anyone is trying this out, try:

$ make -i all

as a temporary work around, assuming its just the "simple" example which fails
and nothing else.

Post created by CRiSP v10.0.3a-b5928

No comments:

Post a Comment