Skip to content
  • Alexander Larsson's avatar
    Initial support for dtrace and systemtap · bef9efd0
    Alexander Larsson authored and Colin Walters's avatar Colin Walters committed
    This adds static markers for dtrace, which are also usable
    by systemtap. Additionally it adds a tapset for systemtap
    that makes it easier to use the static markers.
    
    These are enabled by default.
    
    This initial set of probes is rather limited:
    
    * allocation and free using g_malloc & co
    * allocation and free using g_slice
    * gquark name tracking (useful for converting quarks to strings in probes)
    
    Notes on naming:
    
    Its traditional with dtrace to use probe names with dashes as
    delimiter (slice-alloc). Since dashes are not usable in identifiers
    the C code uses double underscores (slice__alloc) which is converted
    to dashes in the UI. We follow this for the shared lowlevel probe
    names.
    
    Additionally dtrace supports putting a "provider" part in the probe
    names which is essentially a namespacing thing. On systemtap this
    field is currently ignored (but may be implemented in the future), but
    this is not really a problem since in systemtap the probes are
    specified by combining the solib file and the marker name, so there
    can't really be name conflicts.
    
    For the systemtap tapset highlevel probes we instead use names that
    are systemtapish with single dashes as separators.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=606044
    bef9efd0