diff options
author | Alex Bennée <alex.bennee@linaro.org> | 2018-06-22 17:23:44 +0100 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2018-07-05 15:59:41 +0100 |
commit | 7781afb49cdcc41b5cd06d4daa53aa1bc45f95ac (patch) | |
tree | 466cce95530932378410377d9d93c36bd6d15200 /linux-user/exit.c | |
parent | 708b6a643c7a974ffadf64e00019bdcd60edf6e5 (diff) |
linux-user: add gcov support to preexit_cleanup
As we don't always take the normal exit path when running a guest we
can skip the normal exit destructors where gcov normally dumps it's
info. The GCC manual suggests long running programs use __gcov_dump()
to flush out the coverage state periodically so we use that here.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Diffstat (limited to 'linux-user/exit.c')
-rw-r--r-- | linux-user/exit.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/linux-user/exit.c b/linux-user/exit.c index aed8713fae..14e94e28fa 100644 --- a/linux-user/exit.c +++ b/linux-user/exit.c @@ -19,10 +19,17 @@ #include "qemu/osdep.h" #include "qemu.h" +#ifdef CONFIG_GCOV +extern void __gcov_dump(void); +#endif + void preexit_cleanup(CPUArchState *env, int code) { #ifdef TARGET_GPROF _mcleanup(); #endif +#ifdef CONFIG_GCOV + __gcov_dump(); +#endif gdb_exit(env, code); } |