From 403bb89bd7f4ec03d4dcbdf8668d0187358631a0 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Tue, 25 May 2021 09:52:01 +0200 Subject: [PATCH] DOC: update documentation of __gcov_{dump,reset} gcc/ChangeLog: PR gcov-profile/100751 * doc/gcov.texi: Document that __gcov_dump can be called just once and that __gcov_reset resets run-time counters. --- gcc/doc/gcov.texi | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/doc/gcov.texi b/gcc/doc/gcov.texi index 1ad99e5569ee..d076721b93c5 100644 --- a/gcc/doc/gcov.texi +++ b/gcc/doc/gcov.texi @@ -885,13 +885,15 @@ same source lines, the line counts themselves might seem inconsistent. Long-running applications can use the @code{__gcov_reset} and @code{__gcov_dump} facilities to restrict profile collection to the program region of -interest. Calling @code{__gcov_reset(void)} will clear all profile counters -to zero, and calling @code{__gcov_dump(void)} will cause the profile information -collected at that point to be dumped to @file{.gcda} output files. +interest. Calling @code{__gcov_reset(void)} will clear all run-time profile +counters to zero, and calling @code{__gcov_dump(void)} will cause the profile +information collected at that point to be dumped to @file{.gcda} output files +(the function can be called just once). Instrumented applications use a static destructor with priority 99 to invoke the @code{__gcov_dump} function. Thus @code{__gcov_dump} is executed after all user defined static destructors, as well as handlers registered with @code{atexit}. + If an executable loads a dynamic shared object via dlopen functionality, @option{-Wl,--dynamic-list-data} is needed to dump all profile data. -- 2.47.2