3

さて、私は SDT マーカーで自分のアプリケーションを調べようとしています。それを調べるための systemtap スクリプトを作成しましたが、systemtap はパス 5 までエラーを表示せず、パス 5 (実行の開始) 後も何もしません。SDT マーカーを使用した私の C プログラムは次のとおりです。

foo.c:

#include <sys/sdt.h>
#include <stdio.h>

    int main(void)
    {
      printf("Before Marker\n");
      DTRACE_PROBE(user_app, foo_start);
      printf("After Marker\n");
      return 0;
    }

私のsystemtapスクリプトは次のとおりです。

probe_foo.stp

probe process("./user_app").mark("foo_start")
 {
  exit();
 }

そして、私が実行するコマンドは次のとおりです。

stap -v probe_foo.stp

これは私が得るものです:

Pass 1: parsed user script and 98 library script(s) using 217528virt/36580res/2976shr/34316data kb, in 190usr/30sys/222real ms.

Pass 2: analyzed script: 1 probe(s), 1 function(s), 0 embed(s), 0 global(s) using 218596virt/38164res/3424shr/35372data kb, in 10usr/0sys/13real ms.

Pass 3: using cached /root/.systemtap/cache/a6/stap_a6e78dea575657695c4456347007229d_990.c

Pass 4: using cached /root/.systemtap/cache/a6/stap_a6e78dea575657695c4456347007229d_990.ko

Pass 5: starting run.

その後は無限に待ちます。私のカーネル バージョンは 3.8.0 で、fedora 18 を使用しています。

4

1 に答える 1