summaryrefslogtreecommitdiffstats
path: root/scripts/tracetool
diff options
context:
space:
mode:
authorLluís Vilanova <vilanova@ac.upc.edu>2011-12-06 17:38:15 +0100
committerStefan Hajnoczi <stefanha@linux.vnet.ibm.com>2012-03-12 10:12:34 +0000
commitb7d66a761f44a725352e19b64c587924647e6f83 (patch)
treeb9ce4c795969067cf306d925e80ffa7351e15e70 /scripts/tracetool
parenta348f108842fb928563865c9918642900cd0d477 (diff)
downloadhqemu-b7d66a761f44a725352e19b64c587924647e6f83.zip
hqemu-b7d66a761f44a725352e19b64c587924647e6f83.tar.gz
trace: Provide a per-event status define for conditional compilation
Adds a 'TRACE_${NAME}_ENABLED' preprocessor define for each tracing event in "trace.h". This lets the user conditionally compile code with a relatively high execution cost that is only necessary when producing the tracing information for an event that is enabled. Note that events using this define will probably have the "disable" property by default, in order to avoid such costs on regular builds. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Diffstat (limited to 'scripts/tracetool')
-rwxr-xr-xscripts/tracetool9
1 files changed, 8 insertions, 1 deletions
diff --git a/scripts/tracetool b/scripts/tracetool
index 4c9951d..701b517 100755
--- a/scripts/tracetool
+++ b/scripts/tracetool
@@ -519,7 +519,7 @@ linetostap_end_dtrace()
# Process stdin by calling begin, line, and end functions for the backend
convert()
{
- local begin process_line end str disable
+ local begin process_line end str name NAME enabled
begin="lineto$1_begin_$backend"
process_line="lineto$1_$backend"
end="lineto$1_end_$backend"
@@ -534,8 +534,15 @@ convert()
# Process the line. The nop backend handles disabled lines.
if has_property "$str" "disable"; then
"lineto$1_nop" "$str"
+ enabled=0
else
"$process_line" "$str"
+ enabled=1
+ fi
+ if [ "$1" = "h" ]; then
+ name=$(get_name "$str")
+ NAME=$(echo $name | tr '[:lower:]' '[:upper:]')
+ echo "#define TRACE_${NAME}_ENABLED ${enabled}"
fi
done
OpenPOWER on IntegriCloud