| global gobject_types_2_0_@LT_CURRENT@_@LT_REVISION@ | |
| global gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@ | |
| global gobject_signal_names_2_0_@LT_CURRENT@_@LT_REVISION@ | |
| /* 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") | |
| { | |
| gobject_types_2_0_@LT_CURRENT@_@LT_REVISION@[pid(),user_string($arg1)] = $arg3; | |
| gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[pid(),$arg3] = user_string($arg1); | |
| } | |
| probe process("@ABS_GLIB_RUNTIME_LIBDIR@/libgobject-2.0.so.0.@LT_CURRENT@.@LT_REVISION@").mark("signal__new") | |
| { | |
| gobject_signal_names_2_0_@LT_CURRENT@_@LT_REVISION@[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 = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[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 = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[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") | |
| { | |
| /* Beware that if old_refcount is larger than 1 and other threads might race | |
| * and destroy object. In that case, object might be a dangling pointer. */ | |
| object = $arg1; | |
| gtype = $arg2; | |
| type = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[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 = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[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 = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[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 = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[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 = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[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 = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[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 = gobject_signal_names_2_0_@LT_CURRENT@_@LT_REVISION@[pid(),$arg1]; | |
| if (detail != 0) | |
| signal = signal . "::" . gquarks[pid(), detail] | |
| object = $arg3; | |
| gtype = $arg4; | |
| type = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[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 = gobject_signal_names_2_0_@LT_CURRENT@_@LT_REVISION@[pid(),$arg1]; | |
| if (detail != 0) | |
| signal = signal . "::" . gquarks[pid(), detail] | |
| object = $arg3; | |
| gtype = $arg4; | |
| type = gobject_type_names_2_0_@LT_CURRENT@_@LT_REVISION@[pid(),$arg4]; | |
| probestr = sprintf("gobject.signal_emit_end(%p[%s], %s)", object, type, signal); | |
| } |