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:
		
							parent
							
								
									491e2a338f
								
							
						
					
					
						commit
						320fba2a1f
					
				| 
						 | 
				
			
			@ -907,7 +907,8 @@ echo "  --enable-docs            enable documentation build"
 | 
			
		|||
echo "  --disable-docs           disable documentation build"
 | 
			
		||||
echo "  --disable-vhost-net      disable vhost-net acceleration support"
 | 
			
		||||
echo "  --enable-vhost-net       enable vhost-net acceleration support"
 | 
			
		||||
echo "  --enable-trace-backend=B Trace backend nop simple ust dtrace"
 | 
			
		||||
echo "  --enable-trace-backend=B Set trace backend"
 | 
			
		||||
echo "                           Available backends:" $("$source_path"/scripts/tracetool --list-backends)
 | 
			
		||||
echo "  --with-trace-file=NAME   Full PATH,NAME of file to store traces"
 | 
			
		||||
echo "                           Default:trace-<pid>"
 | 
			
		||||
echo "  --disable-spice          disable spice"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -133,6 +133,11 @@ source tree.  It may not be as powerful as platform-specific or third-party
 | 
			
		|||
trace backends but it is portable.  This is the recommended trace backend
 | 
			
		||||
unless you have specific needs for more advanced backends.
 | 
			
		||||
 | 
			
		||||
=== Stderr ===
 | 
			
		||||
 | 
			
		||||
The "stderr" backend sends trace events directly to standard error output
 | 
			
		||||
during emulation.
 | 
			
		||||
 | 
			
		||||
==== Monitor commands ====
 | 
			
		||||
 | 
			
		||||
* info trace
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue