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

Reply via email to