aboutsummaryrefslogtreecommitdiff
path: root/tracetool
diff options
context:
space:
mode:
Diffstat (limited to 'tracetool')
-rwxr-xr-xtracetool116
1 files changed, 10 insertions, 106 deletions
diff --git a/tracetool b/tracetool
index 5b6636ac27..701085837f 100755
--- a/tracetool
+++ b/tracetool
@@ -20,12 +20,10 @@ Backends:
--nop Tracing disabled
--simple Simple built-in backend
--ust LTTng User Space Tracing backend
- --dtrace DTrace/SystemTAP backend
Output formats:
-h Generate .h file
-c Generate .c file
- -d Generate .d file (DTrace only)
EOF
exit 1
}
@@ -48,9 +46,8 @@ get_args()
# Get the argument name list of a trace event
get_argnames()
{
- local nfields field name sep
+ local nfields field name
nfields=0
- sep="$2"
for field in $(get_args "$1"); do
nfields=$((nfields + 1))
@@ -61,7 +58,7 @@ get_argnames()
name=${field%,}
test "$field" = "$name" && continue
- printf "%s%s " $name $sep
+ printf "%s" "$name, "
done
# Last argument name
@@ -76,7 +73,7 @@ get_argc()
{
local name argc
argc=0
- for name in $(get_argnames "$1", ","); do
+ for name in $(get_argnames "$1"); do
argc=$((argc + 1))
done
echo $argc
@@ -157,7 +154,7 @@ EOF
cast_args_to_uint64_t()
{
local arg
- for arg in $(get_argnames "$1", ","); do
+ for arg in $(get_argnames "$1"); do
printf "%s" "(uint64_t)(uintptr_t)$arg"
done
}
@@ -250,7 +247,7 @@ linetoh_ust()
local name args argnames
name=$(get_name "$1")
args=$(get_args "$1")
- argnames=$(get_argnames "$1", ",")
+ argnames=$(get_argnames "$1")
cat <<EOF
DECLARE_TRACE(ust_$name, TP_PROTO($args), TP_ARGS($argnames));
@@ -277,7 +274,7 @@ linetoc_ust()
local name args argnames fmt
name=$(get_name "$1")
args=$(get_args "$1")
- argnames=$(get_argnames "$1", ",")
+ argnames=$(get_argnames "$1")
fmt=$(get_fmt "$1")
cat <<EOF
@@ -309,87 +306,6 @@ EOF
echo "}"
}
-linetoh_begin_dtrace()
-{
- cat <<EOF
-#include "trace-dtrace.h"
-EOF
-}
-
-linetoh_dtrace()
-{
- local name args argnames state nameupper
- name=$(get_name "$1")
- args=$(get_args "$1")
- argnames=$(get_argnames "$1", ",")
- state=$(get_state "$1")
- if [ "$state" = "0" ] ; then
- name=${name##disable }
- fi
-
- nameupper=`echo $name | tr '[:lower:]' '[:upper:]'`
-
- # Define an empty function for the trace event
- cat <<EOF
-static inline void trace_$name($args) {
- if (QEMU_${nameupper}_ENABLED()) {
- QEMU_${nameupper}($argnames);
- }
-}
-EOF
-}
-
-linetoh_end_dtrace()
-{
- return
-}
-
-linetoc_begin_dtrace()
-{
- return
-}
-
-linetoc_dtrace()
-{
- # No need for function definitions in dtrace backend
- return
-}
-
-linetoc_end_dtrace()
-{
- return
-}
-
-linetod_begin_dtrace()
-{
- cat <<EOF
-provider qemu {
-EOF
-}
-
-linetod_dtrace()
-{
- local name args state
- name=$(get_name "$1")
- args=$(get_args "$1")
- state=$(get_state "$1")
- if [ "$state" = "0" ] ; then
- name=${name##disable }
- fi
-
- # Define prototype for probe arguments
- cat <<EOF
- probe $name($args);
-EOF
-}
-
-linetod_end_dtrace()
-{
- cat <<EOF
-};
-EOF
-}
-
# Process stdin by calling begin, line, and end functions for the backend
convert()
{
@@ -408,10 +324,9 @@ convert()
disable=${str%%disable *}
echo
if test -z "$disable"; then
- # Pass the disabled state as an arg for the simple
- # or DTrace backends which handle it dynamically.
- # For all other backends, call lineto$1_nop()
- if [ $backend = "simple" -o "$backend" = "dtrace" ]; then
+ # Pass the disabled state as an arg to lineto$1_simple().
+ # For all other cases, call lineto$1_nop()
+ if [ $backend = "simple" ]; then
"$process_line" "$str"
else
"lineto$1_nop" "${str##disable }"
@@ -445,19 +360,9 @@ tracetoc()
convert c
}
-tracetod()
-{
- if [ $backend != "dtrace" ]; then
- echo "DTrace probe generator not applicable to $backend backend"
- exit 1
- fi
- echo "/* This file is autogenerated by tracetool, do not edit. */"
- convert d
-}
-
# Choose backend
case "$1" in
-"--nop" | "--simple" | "--ust" | "--dtrace") backend="${1#--}" ;;
+"--nop" | "--simple" | "--ust") backend="${1#--}" ;;
*) usage ;;
esac
shift
@@ -465,7 +370,6 @@ shift
case "$1" in
"-h") tracetoh ;;
"-c") tracetoc ;;
-"-d") tracetod ;;
"--check-backend") exit 0 ;; # used by ./configure to test for backend
*) usage ;;
esac