simpletrace: Move st_init() error reporting

User emulator builds do not have error_report() so it should not be used
by simpletrace.c.  In fact, error reporting inside simpletrace.c is
inappropriate and should be done by the caller instead.

This patch moves st_init() error reporting out to its caller,
vl.c:main().

Reported-by: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
Stefan Hajnoczi 2011-03-13 20:14:30 +00:00 committed by Blue Swirl
parent cc015e9a5d
commit 31d3c9b8c1
3 changed files with 9 additions and 8 deletions

View file

@ -14,7 +14,6 @@
#include <time.h> #include <time.h>
#include <signal.h> #include <signal.h>
#include <pthread.h> #include <pthread.h>
#include "qerror.h"
#include "qemu-timer.h" #include "qemu-timer.h"
#include "trace.h" #include "trace.h"
@ -331,7 +330,7 @@ void st_flush_trace_buffer(void)
flush_trace_file(true); flush_trace_file(true);
} }
void st_init(const char *file) bool st_init(const char *file)
{ {
pthread_t thread; pthread_t thread;
pthread_attr_t attr; pthread_attr_t attr;
@ -347,10 +346,10 @@ void st_init(const char *file)
pthread_sigmask(SIG_SETMASK, &oldset, NULL); pthread_sigmask(SIG_SETMASK, &oldset, NULL);
if (ret != 0) { if (ret != 0) {
error_report("warning: unable to create trace file thread\n"); return false;
return;
} }
atexit(st_flush_trace_buffer); atexit(st_flush_trace_buffer);
st_set_trace_file(file); st_set_trace_file(file);
return true;
} }

View file

@ -37,11 +37,11 @@ void st_print_trace_file_status(FILE *stream, fprintf_function stream_printf);
void st_set_trace_file_enabled(bool enable); void st_set_trace_file_enabled(bool enable);
bool st_set_trace_file(const char *file); bool st_set_trace_file(const char *file);
void st_flush_trace_buffer(void); void st_flush_trace_buffer(void);
void st_init(const char *file); bool st_init(const char *file);
#else #else
static inline void st_init(const char *file) static inline bool st_init(const char *file)
{ {
/* Do nothing */ return true;
} }
#endif /* !CONFIG_SIMPLE_TRACE */ #endif /* !CONFIG_SIMPLE_TRACE */

4
vl.c
View file

@ -2766,7 +2766,9 @@ int main(int argc, char **argv, char **envp)
} }
loc_set_none(); loc_set_none();
st_init(trace_file); if (!st_init(trace_file)) {
fprintf(stderr, "warning: unable to initialize simple trace backend\n");
}
/* If no data_dir is specified then try to find it relative to the /* If no data_dir is specified then try to find it relative to the
executable path. */ executable path. */