blob: e24abf7f111b01dfc49df3f23539a89cccec5826 [file] [log] [blame]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Generate .stp file (DTrace with SystemTAP only).
__author__ = "Lluís Vilanova <>"
__copyright__ = "Copyright 2012-2014, Lluís Vilanova <>"
__license__ = "GPL version 2 or (at your option) any later version"
__maintainer__ = "Stefan Hajnoczi"
__email__ = ""
from tracetool import out
from tracetool.backend.dtrace import binary, probeprefix
# Technically 'self' is not used by systemtap yet, but
# they recommended we keep it in the reserved list anyway
'break', 'catch', 'continue', 'delete', 'else', 'for',
'foreach', 'function', 'global', 'if', 'in', 'limit',
'long', 'next', 'probe', 'return', 'self', 'string',
'try', 'while'
def generate(events, backend):
events = [e for e in events
if "disable" not in]
out('/* This file is autogenerated by tracetool, do not edit. */',
for e in events:
# Define prototype for probe arguments
out('probe %(probeprefix)s.%(name)s = process("%(binary)s").mark("%(name)s")',
i = 1
if len(e.args) > 0:
for name in e.args.names():
# Append underscore to reserved keywords
if name in RESERVED_WORDS:
name += '_'
out(' %s = $arg%d;' % (name, i))
i += 1