ProbeVue

ProbeVue uses tracing actions or probe actions to capture information by writing the current values of global and context-specific information to a trace buffer.

The information captured is called trace data. The system usually provides facilities to read the data out of the trace buffer and make it available to the users of the system.

A probe point identifies a point during normal system activity that is capable of being probed. With dynamic tracing, probe points do not have any probes attached to them unless they are being traced. Enabling a probe is the operation of attaching a probe to a probe point and disabling a probe is the operation of removing a probe from a probe point. A probe is triggered or fired when an enabled probe point is reached during system activity and the tracing actions are performed.

ProbeVue supports the following two broad categories of probe points:

  • Probe location
    A location in user or kernel code where some tracing action is to be performed. Enabled probes at a probe location fire when any thread running code reaches that location.
  • Probe event
    An event of interest at whose occurrence some tracing action is performed. Probe events do not easily map to a specific code location. Enabled probes that indicate a probe event are configured to fire when that event occurs.

ProbeVue also distinguishes probe points by their type. A probe type identifies a set of probe points that share some common characteristics, for example, probe points that identify the entry and exit of system calls, or probe points that indicate updates to system statistics. Distinguishing probes by types gives structure to the wide variety of probe points.

The Vue programming language provides your tracing specifications to ProbeVue.

The Vue programming language provides your tracing specifications to ProbeVue. A Vue script or Vue program is a program written in Vue. You can use a Vue script for the following purposes:

  • Identify the probe points where a probe is to be dynamically enabled.
  • Specify the conditions, if any, that must be satisfied to cause a probe to fire.
  • Specify the actions issued, including the trace data that you want to capture.

In short, a Vue script tells ProbeVue where to trace, when to trace, and what to trace. Vue scripts should have a file suffix of “.e” to distinguish them from other file types.

Note that Vue is both a programming and a script language: it is a dedicated dynamic tracing language. Vue supports a subset of C and scripting syntax that is most beneficial for dynamic tracing purposes.