Skip to content

Instantly share code, notes, and snippets.

@chrisa
Created September 9, 2013 19:25
Show Gist options
  • Save chrisa/6500268 to your computer and use it in GitHub Desktop.
Save chrisa/6500268 to your computer and use it in GitHub Desktop.
~/ruby-usdt ➔ git submodule update --init
Submodule 'ext/libusdt' (https://github.com/chrisa/libusdt) registered for path 'ext/libusdt'
Cloning into 'ext/libusdt'...
remote: Counting objects: 347, done.
remote: Compressing objects: 100% (115/115), done.
remote: Total 347 (delta 231), reused 347 (delta 231)
Receiving objects: 100% (347/347), 76.46 KiB, done.
Resolving deltas: 100% (231/231), done.
Submodule path 'ext/libusdt': checked out 'ac9e412ff58b8b0208608ef5c764fbb3bae755ee'
~/ruby-usdt ➔ cd ext/libusdt/
~/ruby-usdt/ext/libusdt ➔ make
gcc -O2 -arch i386 -arch x86_64 -c -o usdt.o usdt.c
gcc -O2 -arch i386 -arch x86_64 -c -o usdt_dof_file.o usdt_dof_file.c
gcc -arch i386 -o usdt_tracepoints_i386.o -c usdt_tracepoints_i386.s
gcc -arch x86_64 -o usdt_tracepoints_x86_64.o -c usdt_tracepoints_x86_64.s
lipo -create -output usdt_tracepoints.o usdt_tracepoints_i386.o \
usdt_tracepoints_x86_64.o
gcc -O2 -arch i386 -arch x86_64 -c -o usdt_probe.o usdt_probe.c
gcc -O2 -arch i386 -arch x86_64 -c -o usdt_dof.o usdt_dof.c
gcc -O2 -arch i386 -arch x86_64 -c -o usdt_dof_sections.o usdt_dof_sections.c
rm -f libusdt.a
ar cru libusdt.a usdt.o usdt_dof_file.o usdt_tracepoints.o usdt_probe.o usdt_dof.o usdt_dof_sections.o
ranlib libusdt.a
~/ruby-usdt/ext/libusdt ➔ cd ../usdt
~/ruby-usdt/ext/usdt ➔ ruby extconf.rb
checking for dtrace_open() in -ldtrace... yes
make: Nothing to be done for `all'.
checking for main() in -lusdt... yes
checking for usdt.h... yes
creating Makefile
~/ruby-usdt/ext/usdt ➔ make
gcc-apple-4.2 -I. -I/Users/chris/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin12.2.0 -I/Users/chris/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/chris/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -DHAVE_USDT_H -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -I/Users/chris/.rvm/usr/include -fno-common -pipe -o usdt.o -c usdt.c
usdt.c: In function 'probe_fire':
usdt.c:171: warning: cast to pointer from integer of different size
gcc-apple-4.2 -dynamic -bundle -o usdt.bundle usdt.o -L. -L/Users/chris/.rvm/rubies/ruby-1.9.2-p320/lib -L. -L/Users/chris/.rvm/usr/lib -L/usr/local/lib -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace -lruby.1.9.1 -lusdt -ldtrace -lpthread -ldl -lobjc
~/ruby-usdt/ext/usdt ➔ cd ../..
~/ruby-usdt ➔ ruby ext/usdt/test.rb
#<USDT::Provider:0x007fed7a04fbe0>
run:
sudo dtrace -n 'ruby*:test:myfn:probe { printf("%s %s %d",
copyinstr(arg0),
copyinstr(arg1),
args[2])
}'
Fired!
Fired!
Fired!
Fired!
@cdwijayarathna
Copy link

Hii there,
Thank you for replying,

But make doesn't work for me, gmake either,

-bash-4.1$ make
make: Fatal error in reader: Makefile, line 9: Unexpected end of line seen
-bash-4.1$ gmake
gmake: Nothing to be done for `all'.

@cdwijayarathna
Copy link

got it fixed, but now getting another problem,

-bash-4.1$ ruby ext/usdt/test.rb
ld.so.1: ruby: fatal: relocation error: file /home/chamila/jr/ruby-dt/ruby-usdt/ext/usdt/usdt.so: symbol usdt_create_provider: referenced symbol not found
Killed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment