New trace-event backend: stderr

This backend sends trace events to standard error output during the emulation.

Also add a "--list-backends" option to tracetool, so configure script can
display the list of available backends.

Signed-off-by: Fabien Chouteau <chouteau@adacore.com>
Acked-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
Fabien Chouteau 2011-01-27 10:24:41 +01:00 committed by Blue Swirl
parent 491e2a338f
commit 320fba2a1f
3 changed files with 65 additions and 3 deletions

View file

@ -13,12 +13,13 @@ set -f
usage()
{
cat >&2 <<EOF
usage: $0 [--nop | --simple | --ust] [-h | -c]
usage: $0 [--nop | --simple | --stderr | --ust | --dtrace] [-h | -c]
Generate tracing code for a file on stdin.
Backends:
--nop Tracing disabled
--simple Simple built-in backend
--stderr Stderr built-in backend
--ust LTTng User Space Tracing backend
--dtrace DTrace/SystemTAP backend
@ -236,6 +237,56 @@ linetoc_end_simple()
EOF
}
#STDERR
linetoh_begin_stderr()
{
cat <<EOF
#include <stdio.h>
EOF
}
linetoh_stderr()
{
local name args argnames argc fmt
name=$(get_name "$1")
args=$(get_args "$1")
argnames=$(get_argnames "$1" ",")
argc=$(get_argc "$1")
fmt=$(get_fmt "$1")
if [ "$argc" -gt 0 ]; then
argnames=", $argnames"
fi
cat <<EOF
static inline void trace_$name($args)
{
fprintf(stderr, "$name $fmt\n" $argnames);
}
EOF
}
linetoh_end_stderr()
{
return
}
linetoc_begin_stderr()
{
return
}
linetoc_stderr()
{
return
}
linetoc_end_stderr()
{
return
}
#END OF STDERR
# Clean up after UST headers which pollute the namespace
ust_clean_namespace() {
cat <<EOF
@ -546,7 +597,7 @@ targetarch=
until [ -z "$1" ]
do
case "$1" in
"--nop" | "--simple" | "--ust" | "--dtrace") backend="${1#--}" ;;
"--nop" | "--simple" | "--stderr" | "--ust" | "--dtrace") backend="${1#--}" ;;
"--binary") shift ; binary="$1" ;;
"--target-arch") shift ; targetarch="$1" ;;
@ -557,6 +608,11 @@ do
"--check-backend") exit 0 ;; # used by ./configure to test for backend
"--list-backends") # used by ./configure to list available backends
echo "nop simple stderr ust dtrace"
exit 0
;;
*)
usage;;
esac