mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-02 15:46:17 +01:00
200 lines
6.9 KiB
Plaintext
200 lines
6.9 KiB
Plaintext
|
global gtypes
|
||
|
global gtypenames
|
||
|
global gsignalnames
|
||
|
|
||
|
/* These are needed to keep track of gtype and signal names for the below
|
||
|
* probes.
|
||
|
*/
|
||
|
probe process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("type__new")
|
||
|
{
|
||
|
gtypes[pid(),user_string($arg1)] = $arg3;
|
||
|
gtypenames[pid(),$arg3] = user_string($arg1);
|
||
|
}
|
||
|
probe process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("signal__new")
|
||
|
{
|
||
|
gsignalnames[pid(),$arg1] = user_string($arg2);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.type_new - Called when any entity registered with the #GType system is created
|
||
|
* @name: String name of type
|
||
|
* @parent_gtype: The parent #GType of this type
|
||
|
* @gtype: The #GType for this type
|
||
|
*/
|
||
|
probe gobject.type_new = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("type__new")
|
||
|
{
|
||
|
name = user_string($arg1);
|
||
|
parent_gtype = $arg2;
|
||
|
gtype = $arg3;
|
||
|
probestr = sprintf("gobject.type_new(%s, %d) -> %d", name, parent_gtype, gtype);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.object_new - Called when a #GObject is created
|
||
|
* @object: Raw pointer to object
|
||
|
* @gtype: #GType for this object
|
||
|
* @type: String name of object type
|
||
|
*/
|
||
|
probe gobject.object_new = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("object__new")
|
||
|
{
|
||
|
object = $arg1;
|
||
|
gtype = $arg2;
|
||
|
type = gtypenames[pid(),$arg2];
|
||
|
probestr = sprintf("gobject.object_new(%s) -> %p", type, object);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.object_ref - Called when a new reference is added to a #GObject
|
||
|
* @object: Raw pointer to object
|
||
|
* @gtype: #GType for this object
|
||
|
* @type: String name of object type
|
||
|
* @old_refcount: Original value of the reference count
|
||
|
* @refcount: New value of the reference count
|
||
|
*/
|
||
|
probe gobject.object_ref = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("object__ref")
|
||
|
{
|
||
|
object = $arg1;
|
||
|
gtype = $arg2;
|
||
|
type = gtypenames[pid(),gtype];
|
||
|
old_refcount = $arg3;
|
||
|
refcount = old_refcount+1;
|
||
|
probestr = sprintf("gobject.object_ref(%p[%s]) -> %d", object, type, refcount);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.object_unref - Called when a reference is removed from a #GObject
|
||
|
* @object: Raw pointer to object
|
||
|
* @gtype: #GType for this object
|
||
|
* @type: String name of object type
|
||
|
* @old_refcount: Original value of the reference count
|
||
|
*/
|
||
|
probe gobject.object_unref = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("object__unref")
|
||
|
{
|
||
|
object = $arg1;
|
||
|
gtype = $arg2;
|
||
|
type = gtypenames[pid(),gtype];
|
||
|
old_refcount = $arg3;
|
||
|
refcount = old_refcount-1;
|
||
|
probestr = sprintf("gobject.object_unref(%p [%s]) -> %d", object, type, refcount);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.object_dispose - Called when a g_object_dispose() run for a #GObject is initiated
|
||
|
* @object: Raw pointer to object
|
||
|
* @gtype: #GType for this object
|
||
|
* @type: String name of object type
|
||
|
* @last_unref: FIXME
|
||
|
*/
|
||
|
probe gobject.object_dispose = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("object__dispose")
|
||
|
{
|
||
|
object = $arg1;
|
||
|
gtype = $arg2;
|
||
|
type = gtypenames[pid(),$arg2];
|
||
|
last_unref = $arg3;
|
||
|
probestr = sprintf("gobject.object_dispose(%p[%s])", object, type);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.object_dispose_end - Called when a g_object_dispose() run for a #GObject is completed
|
||
|
* @object: Raw pointer to object
|
||
|
* @gtype: #GType for this object
|
||
|
* @type: String name of object type
|
||
|
* @last_unref: FIXME
|
||
|
*/
|
||
|
probe gobject.object_dispose_end = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("object__dispose__end")
|
||
|
{
|
||
|
object = $arg1;
|
||
|
gtype = $arg2;
|
||
|
type = gtypenames[pid(),$arg2];
|
||
|
last_unref = $arg3;
|
||
|
probestr = sprintf("gobject.object_dispose_end(%p[%s])", object, type);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.object_finalize - Called when finalization for a #GObject is started
|
||
|
* @object: Raw pointer to object
|
||
|
* @gtype: #GType for this object
|
||
|
* @type: String name of object type
|
||
|
*/
|
||
|
probe gobject.object_finalize = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("object__finalize")
|
||
|
{
|
||
|
object = $arg1;
|
||
|
gtype = $arg2;
|
||
|
type = gtypenames[pid(),$arg2];
|
||
|
probestr = sprintf("gobject.object_finalize(%p[%s])", object, type);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.object_finalize - Called when finalization for a #GObject is completed
|
||
|
* @object: Raw pointer to object
|
||
|
* @gtype: #GType for this object
|
||
|
* @type: String name of object type
|
||
|
*/
|
||
|
probe gobject.object_finalize_end = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("object__finalize__end")
|
||
|
{
|
||
|
object = $arg1;
|
||
|
gtype = $arg2;
|
||
|
type = gtypenames[pid(),$arg2];
|
||
|
probestr = sprintf("gobject.object_finalize_end(%p[%s])", object, type);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.signal_new - Called when a new signal is registered for a #GObject
|
||
|
* @gsignal: Integer value for this signal
|
||
|
* @name: String name for this signal
|
||
|
* @gtype: #GType for the type which will gain the new signal
|
||
|
* @type: String name of the type which will gain the new signal
|
||
|
*/
|
||
|
probe gobject.signal_new = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("signal__new")
|
||
|
{
|
||
|
gsignal = $arg1;
|
||
|
name = user_string($arg2);
|
||
|
gtype = $arg3;
|
||
|
type = gtypenames[pid(),$arg3];
|
||
|
probestr = sprintf("gobject.signal_new(%s, %s) -> %d", name, type, gsignal);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.signal_emit - Called when a signal emission for a #GObject is started
|
||
|
* @gsignal: Integer value for this signal
|
||
|
* @detail: String containing signal "detail"
|
||
|
* @signal: String name of the signal
|
||
|
* @object: Raw pointer for object emitting signal
|
||
|
* @gtype: #GType for the type emitting the signal
|
||
|
* @type: String name of the type emitting the signal
|
||
|
*/
|
||
|
probe gobject.signal_emit = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("signal__emit")
|
||
|
{
|
||
|
gsignal = $arg1;
|
||
|
detail = $arg2;
|
||
|
signal = gsignalnames[pid(),$arg1];
|
||
|
if (detail != 0)
|
||
|
signal = signal . "::" . gquarks[pid(), detail]
|
||
|
object = $arg3;
|
||
|
gtype = $arg4;
|
||
|
type = gtypenames[pid(),$arg4];
|
||
|
probestr = sprintf("gobject.signal_emit(%p[%s], %s)", object, type, signal);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* probe gobject.signal_emit_end - Called when a signal emission for a #GObject is completed
|
||
|
* @gsignal: Integer value for this signal
|
||
|
* @detail: String containing signal "detail"
|
||
|
* @signal: String name of the signal
|
||
|
* @object: Raw pointer for object emitting signal
|
||
|
* @gtype: #GType for the type emitting the signal
|
||
|
* @type: String name of the type emitting the signal
|
||
|
*/
|
||
|
probe gobject.signal_emit_end = process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("signal__emit__end")
|
||
|
{
|
||
|
gsignal = $arg1;
|
||
|
detail = $arg2;
|
||
|
signal = gsignalnames[pid(),$arg1];
|
||
|
if (detail != 0)
|
||
|
signal = signal . "::" . gquarks[pid(), detail]
|
||
|
object = $arg3;
|
||
|
gtype = $arg4;
|
||
|
type = gtypenames[pid(),$arg4];
|
||
|
probestr = sprintf("gobject.signal_emit_end(%p[%s], %s)", object, type, signal);
|
||
|
}
|