Skip to content
  • Daniel P. Berrange's avatar
    Add a DTrace tracing backend targetted for SystemTAP compatability · b3d08c02
    Daniel P. Berrange authored
    
    
    This introduces a new tracing backend that targets the SystemTAP
    implementation of DTrace userspace tracing. The core functionality
    should be applicable and standard across any DTrace implementation
    on Solaris, OS-X, *BSD, but the Makefile rules will likely need
    some small additional changes to cope with OS specific build
    requirements.
    
    This backend builds a little differently from the other tracing
    backends. Specifically there is no 'trace.c' file, because the
    'dtrace' command line tool generates a '.o' file directly from
    the dtrace probe definition file. The probe definition is usually
    named with a '.d' extension but QEMU uses '.d' files for its
    external makefile dependancy tracking, so this uses '.dtrace' as
    the extension for the probe definition file.
    
    The 'tracetool' program gains the ability to generate a trace.h
    file for DTrace, and also to generate the trace.d file containing
    the dtrace probe definition.
    
    Example usage of a dtrace probe in systemtap looks like:
    
      probe process("qemu").mark("qemu_malloc") {
        printf("Malloc %d %p\n", $arg1, $arg2);
      }
    
    * .gitignore: Ignore trace-dtrace.*
    * Makefile: Extra rules for generating DTrace files
    * Makefile.obj: Don't build trace.o for DTrace, use
      trace-dtrace.o generated by 'dtrace' instead
    * tracetool: Support for generating DTrace data files
    
    Reviewed-by: default avatarStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
    Signed-off-by: default avatarDaniel P. Berrange <berrange@redhat.com>
    Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    b3d08c02