#! /bin/sh ( echo 'probe begin {}' smap=/boot/System.map-`uname -r` if [ -f $smap ] then # v-- exclude modules grep __systemtap_mark $smap | fgrep -v '[' | while read addr section symbol do mark=`expr $symbol : '__systemtap_mark_\([a-zA-Z0-9_]\+\)_[NS]*\.[0-9]\+'` sig=`expr $symbol : '__systemtap_mark_[a-zA-Z0-9_]\+_\([NS]*\)\.[0-9]\+'` siglen=`expr length "$sig"` # echo $mark $sig $siglen echo 'probe kernel.mark("'$mark'") {' i=0 while [ $i -lt $siglen ]; do i=`expr $i + 1` echo ' print ($arg'$i')' done echo '}' done fi ) | stap -p4 -