Frequently Asked Questions


Installing DProbes


What is DProbes?

Dynamic Probes is a linux debugger that can be used to insert software probes dynamically into executing code modules. When a probe is fired, a user written probe-handler is executed. The probe-handler is a program written in an assembly-like language, based on the Reverse Polish Notation (RPN). Instructions are provided to enable the probe-handler to access all the hardware registers, system data structures and memory.

How is DProbes different from GDB?

Answer coming soon.

How is DProbes different from KDB?

KDB is an interactive debugger that pauses the kernel and waits for input from the user. DProbes takes a pre-defined set of commands to execute at a probepoint. When the probe is triggered, these commands are interpreted and then control is returned to the probed program without a noticable interruption in the program. This is particularly useful for debugging in a production environment. DProbes is also commonly used to debug applications in user mode.

It's worth noting that DProbes can be used to trigger KDB when some pre-defined conditions are met.

How is DProbes licensed?

Dynamic Probes is licensed under the GNU General Public License (GPL).

What are all of the "layered" patches for?

Answer coming soon.

What is DPCC?

DPCC (DProbes C Compiler) is a high-level language compiler that generates probe definitions from a C-like language.

Why does DPCC add a constant value to the offset of functions?

In order for DPCC to access local variables in the probed program, the program must be compiled with frame pointers which causes two extra instructions to be included at the beginning of each function. The constant value is appended so the probe in inserted after the frame pointer instructions.