Hi Alex,

On 06/25/2018 08:19 AM, Alex Bennée wrote:
> 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.
Shouldn't we also check for this symbol in the ./configure script?

> 
> Signed-off-by: Alex Bennée <alex.ben...@linaro.org>

Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>

> ---
>  linux-user/exit.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> 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);
>  }
> 

Reply via email to