Print this page
4474 DTrace Userland CTF Support
4475 DTrace userland Keyword
4476 DTrace tests should be better citizens
4479 pid provider types
4480 dof emulation missing checks
Reviewed by: Bryan Cantrill <bryan@joyent.com>


  43 # C header files.
  44 #
  45 if [[ "$1" == */jdtrace ]]; then
  46         exit 0
  47 fi
  48 
  49 dtrace="$1"
  50 startdir="$PWD"
  51 dir=$(mktemp -td drtiXXXXXX)
  52 if (( $? != 0 )); then
  53         print -u2 'Could not create safe temporary directory'
  54         exit 2
  55 fi
  56 
  57 cd "$dir"
  58 
  59 cat > Makefile <<EOF
  60 all: main
  61 
  62 main: main.o prov.o
  63         gcc -o main main.o prov.o
  64 
  65 main.o: main.c prov.h
  66         gcc -c main.c
  67 
  68 prov.h: prov.d
  69         $dtrace -h -s prov.d
  70 
  71 prov.o: prov.d main.o
  72         $dtrace -G -32 -s prov.d main.o
  73 EOF
  74 
  75 cat > prov.d <<EOF
  76 provider tester {
  77         probe entry();
  78 };
  79 EOF
  80 
  81 cat > main.c <<EOF
  82 #include <stdlib.h>
  83 #include <sys/sdt.h>
  84 #include "prov.h"
  85 
  86 int




  43 # C header files.
  44 #
  45 if [[ "$1" == */jdtrace ]]; then
  46         exit 0
  47 fi
  48 
  49 dtrace="$1"
  50 startdir="$PWD"
  51 dir=$(mktemp -td drtiXXXXXX)
  52 if (( $? != 0 )); then
  53         print -u2 'Could not create safe temporary directory'
  54         exit 2
  55 fi
  56 
  57 cd "$dir"
  58 
  59 cat > Makefile <<EOF
  60 all: main
  61 
  62 main: main.o prov.o
  63         gcc -m32 -o main main.o prov.o
  64 
  65 main.o: main.c prov.h
  66         gcc -m32 -c main.c
  67 
  68 prov.h: prov.d
  69         $dtrace -h -s prov.d
  70 
  71 prov.o: prov.d main.o
  72         $dtrace -G -32 -s prov.d main.o
  73 EOF
  74 
  75 cat > prov.d <<EOF
  76 provider tester {
  77         probe entry();
  78 };
  79 EOF
  80 
  81 cat > main.c <<EOF
  82 #include <stdlib.h>
  83 #include <sys/sdt.h>
  84 #include "prov.h"
  85 
  86 int