diff options
author | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2011-06-15 22:57:26 +0200 |
---|---|---|
committer | Jiri Olsa <Jiri Olsa jolsa@redhat.com> | 2011-06-16 10:38:57 +0200 |
commit | be08addc50d60683fdcc9c3b8cf4488d940e3b96 (patch) | |
tree | 940a6d3f2d26cfb943f19692121f90b62e5b3977 /src | |
parent | 1e797a2b262191a3b96f167c1b99c71442300100 (diff) | |
download | latrace-be08addc50d60683fdcc9c3b8cf4488d940e3b96.tar.gz latrace-be08addc50d60683fdcc9c3b8cf4488d940e3b96.tar.xz latrace-be08addc50d60683fdcc9c3b8cf4488d940e3b96.zip |
make tracer return actual tracee status
Diffstat (limited to 'src')
-rw-r--r-- | src/latrace.c | 7 | ||||
-rw-r--r-- | src/run.c | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/latrace.c b/src/latrace.c index 48006ad..6c45338 100644 --- a/src/latrace.c +++ b/src/latrace.c @@ -66,11 +66,12 @@ static int get_type(char *name) static int main_latrace(int argc, char **argv) { + int ret; + if (-1 == lt_config(&cfg, argc, argv)) return -1; - if (-1 == lt_run(&cfg)) - return -1; + ret = lt_run(&cfg); if ((lt_sh(&cfg, pipe)) && (*lt_sh(&cfg, output))) fclose(lt_sh(&cfg, fout)); @@ -78,7 +79,7 @@ static int main_latrace(int argc, char **argv) if (lt_sh(&cfg, counts)) lt_stats_show(&cfg); - return 0; + return ret; } int main(int argc, char **argv) @@ -427,9 +427,9 @@ static int kill_child(struct lt_config_app *cfg, int lt_run(struct lt_config_app *cfg) { + char ret = (char) -1; char str_dir[LT_MAXFILE]; struct lt_process_args pa = { .dir = str_dir }; - int ret = -1; if (setup_signals()) return -1; @@ -469,6 +469,7 @@ int lt_run(struct lt_config_app *cfg) printf("killed by signal %d\n", WTERMSIG(status)); } + ret = WEXITSTATUS(status); } while(0); run_cleanup(cfg, &pa); |