X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=common.cc;h=c190ed37487e44ff37d9145017dad1bd654085d0;hb=84d0cd2f078f4cb15c318a0fef2515feab570375;hp=bbb30539a8bd36710d9837614c2823b4f1ed3894;hpb=80f5924fb6c148ecb703dfeae5a751948062588b;p=model-checker.git diff --git a/common.cc b/common.cc index bbb3053..c190ed3 100644 --- a/common.cc +++ b/common.cc @@ -14,8 +14,8 @@ #define MAX_TRACE_LEN 100 -FILE *model_out; -int fd_user_out; /**< @brief File descriptor from which to read user program output */ +/** @brief Model-checker output stream; default to stdout until redirected */ +FILE *model_out = stdout; #define CONFIG_STACKTRACE /** Print a backtrace of the current program state. */ @@ -60,6 +60,10 @@ void model_assert(bool expr, const char *file, int line) } } +#ifndef CONFIG_DEBUG + +static int fd_user_out; /**< @brief File descriptor from which to read user program output */ + /** * @brief Setup output redirecting * @@ -77,6 +81,8 @@ void model_assert(bool expr, const char *file, int line) * output much data, we will need to buffer it in user-space during execution. * This also means that if ModelChecker decides not to print an execution, it * should promptly clear the pipe. + * + * This function should only be called once. */ void redirect_output() { @@ -159,3 +165,4 @@ void print_program_output() } } } +#endif /* ! CONFIG_DEBUG */