On Mon, Nov 8, 2010 at 11:33 AM, Daniel P. Berrange <d...@berrange.com> wrote: > @@ -390,6 +396,54 @@ linetod_end_dtrace() > EOF > } > > +linetos_begin_dtrace() > +{ > + return > +} > + > +linetos_dtrace() > +{ > + local name args arglist state
Missing binary, i, and arg. > + name=$(get_name "$1") > + args=$(get_args "$1") > + arglist=$(get_argnames "$1", "") > + state=$(get_state "$1") > + if [ "$state" = "0" ] ; then > + name=${name##disable } > + fi > + > + if [ "$target" = "i386" ] > + then > + binary="qemu" > + else > + binary="qemu-system-$target" > + fi Perhaps we should just pass in the binary name to avoid hardcoding "qemu" and "qemu-system-$target" here. If possible, let's make SystemTap also work for userspace targets, not just for full-system softmmu targets. > + > + # Define prototype for probe arguments > + cat <<EOF > +probe qemu.system.$target.$name = process("$bindir/$binary").mark("$name") > +{ > +EOF > + > + i=1 > + for arg in $arglist > + do > + cat <<EOF > + $arg = \$arg$i; > +EOF > + i="$((i+1))" > + done > + > + cat <<EOF > +} > +EOF > +} > + > +linetos_end_dtrace() > +{ > + return > +} > + > # Process stdin by calling begin, line, and end functions for the backend > convert() > { > @@ -455,6 +509,24 @@ tracetod() > convert d > } > > +tracetos() How about using 'stap' instead of 's' so it's clear we're not generating assembly? Stefan