summaryrefslogtreecommitdiff
path: root/gcc/gcov-io.h
diff options
context:
space:
mode:
authortejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-08 21:22:28 +0000
committertejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-08 21:22:28 +0000
commit4ef7becbf1f12b8f2200ccee6740731bc7853350 (patch)
treee8169275509aad912d8d4b57d59a52610ef8bcc8 /gcc/gcov-io.h
parentc02159a73f8377f6751f96a07010ad54d96c172e (diff)
downloadgcc-4ef7becbf1f12b8f2200ccee6740731bc7853350.tar.gz
This patch adds functionality to libgcov to enable user applications to
collect profile data only in regions of interest. This is useful, for example, to collect profile data from a long-running server only during the time when it is serving requests. Specifically, the new routines __gcov_reset will clear all profile counters to zero and __gcov_dump will write out the profile information collected so far. A global variable is used to prevent writing out the profile a second time during exit. 2012-05-08 Teresa Johnson <tejohnson@google.com> * libgcc/libgcov.c (gcov_clear, __gcov_reset): New functions. (__gcov_dump): Ditto. (gcov_dump_complete): New global variable. (gcov_exit): Export hidden to enable use in L_gcov_dump. (__gcov_flush): Outline functionality now in gcov_clear. * libgcc/Makefile.in (L_gcov_reset, L_gcov_dump): Define. * gcc/gcov-io.h (__gcov_reset, __gcov_dump): Declare. * gcc/doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187297 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcov-io.h')
-rw-r--r--gcc/gcov-io.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/gcov-io.h b/gcc/gcov-io.h
index b80f7069620..c15e64b197b 100644
--- a/gcc/gcov-io.h
+++ b/gcc/gcov-io.h
@@ -458,6 +458,12 @@ extern void __gcov_init (struct gcov_info *) ATTRIBUTE_HIDDEN;
/* Called before fork, to avoid double counting. */
extern void __gcov_flush (void) ATTRIBUTE_HIDDEN;
+/* Function to reset all counters to 0. */
+extern void __gcov_reset (void);
+
+/* Function to enable early write of profile information so far. */
+extern void __gcov_dump (void);
+
/* The merge function that just sums the counters. */
extern void __gcov_merge_add (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;