LoginSignup
58
30

More than 5 years have passed since last update.

MacOSXでstraceが欲しいけどdtrace意味わからん→dtruss使おう

Last updated at Posted at 2014-08-28

Linux環境でstraceを使ったことがあるとMacOSXでも同じことがしたくなりますよね。

とはいえ、MacOSXだとdtraceコマンドってのがあるらしいけど、オプション指定も複雑怪奇で意味わかんない、システムコールだけ気軽に見たいって人も多いのではないでしょうか。

そんなときはdtrussコマンドを使いましょう。このコマンドはdtraceと同じ仕組みでシステムコールだけ見せてくれます。

straceと違って、自分がownerのプロセスであってもroot権限が必要なことに注意してください。

$ sudo dtruss -p 452
Password:
(以下システムコールの羅列)

manpageを見るとtruss(SysV系のコマンドなんすかね…?)のDTrace版だよ、なんてことが書いてあったりして、オプションはstraceと違ったりもします。とはいえdtraceコマンドを調べながら使うよりは断然楽なのでオススメです。

dtruss経由でコマンド起動したい

dtrussはroot権限を要求するのですが、sudo dtruss <command>などとすると挙動が変わって不便だったりします。次のようにすればコマンド自体は元のユーザー権限で動かしつつdtrussすることが可能です。

$ sudo dtruss -f sudo -u $(id -u -n) <command>
58
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
58
30