projects
/
model-checker.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
document and extend trace analysis interface
[model-checker.git]
/
common.cc
diff --git
a/common.cc
b/common.cc
index a43064d527a03340d0f62d260b13b7638cf131f5..66b563a8ba6223a32a2c7d08067406fec0914c4b 100644
(file)
--- a/
common.cc
+++ b/
common.cc
@@
-22,9
+22,7
@@
int model_out = STDOUT_FILENO;
void print_trace(void)
{
#ifdef CONFIG_STACKTRACE
void print_trace(void)
{
#ifdef CONFIG_STACKTRACE
- FILE *file = fdopen(model_out, "w");
- print_stacktrace(file);
- fclose(file);
+ print_stacktrace(model_out);
#else
void *array[MAX_TRACE_LEN];
char **strings;
#else
void *array[MAX_TRACE_LEN];
char **strings;
@@
-42,11
+40,6
@@
void print_trace(void)
#endif /* CONFIG_STACKTRACE */
}
#endif /* CONFIG_STACKTRACE */
}
-void model_print_summary(void)
-{
- model->print_summary();
-}
-
void assert_hook(void)
{
model_print("Add breakpoint to line %u in file %s.\n", __LINE__, __FILE__);
void assert_hook(void)
{
model_print("Add breakpoint to line %u in file %s.\n", __LINE__, __FILE__);
@@
-88,10
+81,12
@@
static int fd_user_out; /**< @brief File descriptor from which to read user prog
*/
void redirect_output()
{
*/
void redirect_output()
{
- int fd;
-
/* Save stdout for later use */
/* Save stdout for later use */
- model_out = dup(fileno(stdout));
+ model_out = dup(STDOUT_FILENO);
+ if (model_out < 0) {
+ perror("dup");
+ exit(EXIT_FAILURE);
+ }
/* Redirect program output to a pipe */
int pipefd[2];
/* Redirect program output to a pipe */
int pipefd[2];
@@
-99,11
+94,17
@@
void redirect_output()
perror("pipe");
exit(EXIT_FAILURE);
}
perror("pipe");
exit(EXIT_FAILURE);
}
- fd = dup2(pipefd[1], fileno(stdout)); // STDOUT_FILENO
+ if (dup2(pipefd[1], STDOUT_FILENO) < 0) {
+ perror("dup2");
+ exit(EXIT_FAILURE);
+ }
close(pipefd[1]);
/* Save the "read" side of the pipe for use later */
close(pipefd[1]);
/* Save the "read" side of the pipe for use later */
- fcntl(pipefd[0], F_SETFL, O_NONBLOCK);
+ if (fcntl(pipefd[0], F_SETFL, O_NONBLOCK) < 0) {
+ perror("fcntl");
+ exit(EXIT_FAILURE);
+ }
fd_user_out = pipefd[0];
}
fd_user_out = pipefd[0];
}