これを文書化するだけです:(従うべき自己回答)
dtrace
ライセンスの問題により、Sun のパッケージが Ubuntu 用にパッケージ化されていないことは承知しています。だから私はそれをダウンロードし、Ubuntu のソースからビルドしました - しかし、Simple dtraces not working · Issue #17 · dtrace4linux/linux · GitHubのものとほとんど同じような問題を抱えています。つまり、ドライバーのロードは問題ないようです:
dtrace-20130712$ sudo make load
tools/load.pl
23:20:31 Syncing...
23:20:31 Loading: build-2.6.38-16-generic/driver/dtracedrv.ko
23:20:34 Preparing symbols...
23:20:34 Probes available: 364377
23:20:44 Time: 13s
...しかし、単純なスクリプトを実行しようとすると失敗します:
$ sudo ./build/dtrace -n 'BEGIN { printf("Hello, world"); exit(0); }'
dtrace: invalid probe specifier BEGIN { printf("Hello, world"); exit(0); }: "/path/to/src/dtrace-20130712/etc/sched.d", line 60: no symbolic type information is available for kernel`dtrace_cpu_id: Invalid argument
上記の問題リンクに従って:
(ctf にはプライベートで動作する libdwarf ライブラリが必要です - ほとんどの古いリリースには壊れたバージョンがあります)。
...次にlibdwarf
、ソースから構築し、それにdtrace
基づいて構築しました(簡単ではなく、シンボリックリンクの正しい配置を手動で見つける必要があります)。そして、私はまだ同じ失敗をします。
これを修正することは可能ですか?