Reputation:
I'm trying to count the syscalls in my Go program on OS X Yosemite. I've tried using dtruss
and dtrace
, but both cause my program to crash with the following error, followed by a stack trace:
fatal error: runtime: bsdthread_register error
The two commands I've used are:
sudo dtruss "./my_program my_arg"
sudo dtrace -c "powerset 2" -n 'syscall:::entry { @num[probefunc] = count(); }'
The main takeaway from my Google-foo has been to unset DYLD_INSERT_LIBRARIES
, which I have done numerous times to no avail.
./my_program
is a binary that I created with go install
. I've written an equivalent C program and both of the above commands work fine with that.
Upvotes: 1
Views: 321
Reputation: 109347
If you want to use dtrace on macOS, you will need to use the external linker to build your program
-ldflags -linkmode=external
Upvotes: 1