I have checked in code for phase 1 of support for probe modules for Linux
DPCL. This code allows probe modules to be loaded by a Linux DPCL client
using the same API as the AIX implementation.
Currently, the only way to get this code is by checking out the source
code from CVS, using the default code branch.
The major differences from the AIX implementation are
1) You must compile the probe module using at least the flags -gdwarf-2
-shared and -fpic. Otherwise the probe module will not work and DPCL may
hang/fail during the probe module load.
2) All functions in the probe module are visible to DPCL, with the
possible exception of static functions, since Linux does not have the
concept of an exported symbol list.
Note that this is the initial implementation, which I wanted to get
checked in so interested people could experiment with it. There are still
several pieces to be completed.
1) Unloading a probe module does not work.
2) Linux BPatch loads symbol information on demand, rather than when the
module is initially loaded. The logic which manages this needs to be
finished. Currently, multiple requests for symbol information may result
in multiple copies of the data being loaded.
3) The original BPatch code had a restriction that only one instance of a
source file could be loaded. If a second module was compiled from a source
file with the same name, an attempt to load that probe module would
trigger an assert. Currently, the reference to the second source file is
I am working on completing the remaining parts. If anyone experiments with
this, and encounters problems, post to the mailing list and I will