diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-05-11 22:13:28 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-05-11 22:13:28 +0200 |
commit | b415168a9862023462b7193e83da948cb8d11893 (patch) | |
tree | 704bd09ed0b69b7a30b711c5431ff69eaad1a7f5 /src | |
parent | 91689ea8ae01acb3daf8ba0ee91acd729af7c84c (diff) |
patch 8.2.0739: incomplete profiling when exiting because of a dealy signalv8.2.0739
Problem: Incomplete profiling when exiting because of a dealy signal.
Solution: Call __gcov_flush() if available.
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile | 4 | ||||
-rw-r--r-- | src/os_unix.c | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/Makefile b/src/Makefile index 6c7ef85a92..7c2934aea3 100644 --- a/src/Makefile +++ b/src/Makefile @@ -686,8 +686,10 @@ LINT_OPTIONS = -beprxzF # 7. Open the objects/index.html file in a web browser to view the coverage # information. # -# PROFILE_CFLAGS=-g -O0 -fprofile-arcs -ftest-coverage # LDFLAGS=--coverage +# PROFILE_CFLAGS=-g -O0 -fprofile-arcs -ftest-coverage -DWE_ARE_PROFILING -DUSE_GCOV_FLUSH +# Alternate flags +# PROFILE_CFLAGS=-g -O0 --coverage -DWE_ARE_PROFILING -DUSE_GCOV_FLUSH # Uncomment one of the next two lines to compile Vim with the diff --git a/src/os_unix.c b/src/os_unix.c index b5ae9f8687..aea3d5a9e2 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -3312,6 +3312,10 @@ exit_scroll(void) } } +#ifdef USE_GCOV_FLUSH +extern void __gcov_flush(); +#endif + void mch_exit(int r) { @@ -3358,6 +3362,12 @@ mch_exit(int r) } out_flush(); ml_close_all(TRUE); // remove all memfiles + +#ifdef USE_GCOV_FLUSH + // Flush coverage info before possibly being killed by a deadly signal. + __gcov_flush(); +#endif + may_core_dump(); #ifdef FEAT_GUI if (gui.in_use) diff --git a/src/version.c b/src/version.c index 317b34431e..799e846713 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 739, +/**/ 738, /**/ 737, |