Dynamic Probe Class Library

Dynamic Probe Class Library Programming Guide


Table of Contents

  • Who should read this book
  • How This Book is Organized
  • Overview of Contents
  • Conventions and terminology used in this book
  • Accessing UNIX man pages for DPCL classes and functions
  • Accessing DPCL sample applications
  • Trademarks

  • DPCL Concepts and Overview

  • What is dynamic instrumentation?
  • What are the advantages of dynamic instrumentation?
  • What is the DPCL system?
  • What is a DPCL target application?
  • What is a DPCL analysis tool?
  • What are the DPCL daemons?
  • What is a probe?
  • Why is it advantageous to build analysis tools on the DPCL system?
  • What are the Process, Application, and PoeAppl classes?
  • What is the Process class?
  • What is the Application class?
  • What is the PoeAppl class?
  • What are the ProbeExp, ProbeHandle, and ProbeModule classes?
  • What is the ProbeExp class?
  • What is the ProbeHandle class?
  • What is the ProbeModule class?
  • What are the SourceObj and InstPoint classes?
  • What is the SourceObj class?
  • What is the InstPoint class?
  • What is the ProbeType class?
  • What is the Phase class?
  • What are the FunctionList and FunctionId classes?
  • What is the FunctionList class?
  • What is the FunctionId class?
  • What is the AisStatus class?
  • The hello world target application
  • The hello world analysis tool
  • Step 1: Initialize tool to use the DPCL system
  • Step 2: Connect to the target application
  • Step 3: Create hello world probe
  • Step 4: Install and execute probe in the target application
  • Step 5: Entering the DPCL main event loop
  • Compiling, linking, and running the DPCL hello world program

  • Standard DPCL Programming Tasks

  • Step 1: Include DPCL header file(s)
  • Step 2: Initialize the DPCL system
  • Example: Initializing the analysis tool to use the DPCL system
  • Connecting to the target application
  • Connecting to a serial application
  • Connecting to a parallel application
  • Starting the target application
  • Starting a serial application
  • Starting a parallel application
  • Attaching to the target application process(es)
  • Resuming execution of the target application process(es)
  • Suspending execution of the target application process(es)
  • Terminating target application processes
  • Detaching from target application processes
  • Example: Controlling execution of target application processes
  • Creating probe expressions
  • Step 1: Determine basic logic for the probe expression
  • Step 2: Build the probe expression
  • Example: Creating probe expressions
  • Creating and calling probe module functions
  • Step 1: Create probe module function
  • Step 2: Compile the probe module
  • Step 3: Instantiate a ProbeModule class object to represent the probe module
  • Step 4: Load probe module into Process class object(s)
  • Step 5: Create probe expression to reference or call the probe module function
  • Step 6: Create data callback function to respond to messages from the probe
  • Example: Creating and calling a probe module function
  • Installing and activating point probes
  • Step 1: Create point probe
  • Step 2: Navigate application source structure to get instrumentation point
  • Step 3: Install probe at instrumentation point
  • Step 4: Activate probe
  • Example: Installing and activating a point probe
  • Executing phase probes
  • Step 1: Create probe module(s)
  • Step 2: Create probe expression(s) to reference the probe module function(s)
  • Step 3: Create phase
  • Step 4: Add phase to the target application process(es)
  • Step 5: Create probe expression(s) to allocate and associate data with the phase
  • Step 6: Specify phase exit functions
  • Step 7: Modify phase period
  • Example: Executing phase probes
  • Executing one-shot probes
  • Step 1: Create one-shot probe
  • Step 2: Execute the one-shot probe
  • Example: Executing a one-shot probe
  • Example: Entering and exiting the DPCL main event loop

  • Additional DPCL Programming Tasks

  • Handling signals through the DPCL system
  • Handling file descriptors through the DPCL system

  • Appendixes


    [ Top of Page | Previous Page | Next Page | Table of Contents | Index ]