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 discarded.

I am working on completing the remaining parts. If anyone experiments with this, and encounters problems, post to the mailing list and I will investigate.