xemu/trace/control.c
Alexey Kardashevskiy 794b1f962e trace: added ability to comment out events in the list
It is convenient for debug to be able to switch on/off some events easily.
The only possibility now is to remove event name from the file completely
and type it again when we want it back.

The patch adds '#' symbol handling as a comment specifier.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2012-07-19 11:30:37 +01:00

46 lines
1.3 KiB
C

/*
* Interface for configuring and controlling the state of tracing events.
*
* Copyright (C) 2011 Lluís Vilanova <vilanova@ac.upc.edu>
*
* This work is licensed under the terms of the GNU GPL, version 2. See
* the COPYING file in the top-level directory.
*/
#include "trace/control.h"
void trace_backend_init_events(const char *fname)
{
if (fname == NULL) {
return;
}
FILE *fp = fopen(fname, "r");
if (!fp) {
fprintf(stderr, "error: could not open trace events file '%s': %s\n",
fname, strerror(errno));
exit(1);
}
char line_buf[1024];
while (fgets(line_buf, sizeof(line_buf), fp)) {
size_t len = strlen(line_buf);
if (len > 1) { /* skip empty lines */
line_buf[len - 1] = '\0';
if ('#' == line_buf[0]) { /* skip commented lines */
continue;
}
if (!trace_event_set_state(line_buf, true)) {
fprintf(stderr,
"error: trace event '%s' does not exist\n", line_buf);
exit(1);
}
}
}
if (fclose(fp) != 0) {
fprintf(stderr, "error: closing file '%s': %s\n",
fname, strerror(errno));
exit(1);
}
}