All pastes #2077194 Raw Edit

systemtap gstreamer

public text v1 · immutable
#2077194 ·published 2011-06-09 08:45 UTC
rendered paste body
global names
global new
global ref
global unref

probe gobject.type_new
{
  if (target() == pid())
    {
      names[gtype] = user_string($name);
    }
}

probe process("/usr/lib/libgstreamer-0.10.so.0.29.0").function("gst_mini_object_new").call {
  if (target() == pid())
    {
      name = names[$type];
      printf ("GST_MINI_OBJECT new (%s) %x %d %s\n", $$parms, $type, $type, name);
      new++;
    }
}

//probe process("/usr/lib/libgstreamer-0.10.so.0.29.0").function("gst_mini_object_new").return {
//  if (target() == pid())
//    {
//      printf ("(%s)\n", $$return);
//    }
//}

probe process("/usr/lib/libgstreamer-0.10.so.0.29.0").function("gst_mini_object_ref") {
  if (target() == pid())
    {
      printf ("GST_MINI_OBJECT ref (%s) %x\n", $$parms, $mini_object->refcount);
      ref++;
    }
}

probe process("/usr/lib/libgstreamer-0.10.so.0.29.0").function("gst_mini_object_unref") {
  if (target() == pid())
    {
      printf ("GST_MINI_OBJECT unref (%s) %x\n", $$parms, $mini_object->refcount);
      unref++;
    }
}

probe begin {
  printf ("// gst-memtrace2.stp; target=%d\n", target());
  new = 0;
  ref = 0;
  unref = 0;
}

probe end {
  println (new);
  println (ref);
  println (unref);
}