如何计算OS X上Go程序中的系统调用?

时间:2016-10-11 19:00:27

标签: c go system-calls

我正在尝试在OS X Yosemite上计算我的Go程序中的系统调用。我尝试过使用dtrussdtrace,但两者都会导致我的程序崩溃并出现以下错误,然后是堆栈跟踪:

fatal error: runtime: bsdthread_register error

我使用的两个命令是:

  1. sudo dtruss "./my_program my_arg"
  2. sudo dtrace -c "powerset 2" -n 'syscall:::entry { @num[probefunc] = count(); }'
  3. 我尝试过的事情

    我的Google-foo的主要内容是取消设置DYLD_INSERT_LIBRARIES,我已多次无效。

    ./my_program是我使用go install创建的二进制文件。我已经编写了一个等效的C程序,上述两个命令都可以正常工作。

1 个答案:

答案 0 :(得分:1)

如果要在macOS上使用dtrace,则需要使用外部链接器来构建程序

-ldflags -linkmode=external