This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Google/4_8] Support for embedding build info into gcda files


Support for embedding arbitrary build information from the profile-generate
compile into the gcda file in a new BUILD_INFO record. Lines from a file
passed to the -fprofile-generate compile via a new
-fprofile-generate-buildinfo=filename option are embedded as strings
in the gcov_info struct and emitted as-is to a new GCOV_TAG_BUILD_INFO
record. They are ignored on profile-use compiles, but emitted by gcov-dump.
This is useful for recording information about, for example, source revision
info that can be helpful for diagnosing profile mis-matches.

For example:

$ cat buildinfo.txt
Build timestamp xxxx
Build source revision r12345
Other random build data

$ g++ foo.cc -fprofile-generate -fprofile-generate-buildinfo=buildinfo.txt

$ a.out
$ gcov-dump foo.gcda
foo.gcda:data:magic `gcda':version `408*'
foo.gcda:stamp 708902860
foo.gcda: a3000000:  22:PROGRAM_SUMMARY checksum=0x86a3bc55
foo.gcda:               counts=1, runs=1, sum_all=1, run_max=1, sum_max=1
foo.gcda:               counter histogram:
foo.gcda:               1: num counts=1, min counter=1, cum_counter=1
foo.gcda: a7000000:  24:BUILD INFO num_strings=3
foo.gcda:               Build timestamp xxxx
foo.gcda:               Build source revision r12345
foo.gcda:               Other random build data
foo.gcda: 01000000:   3:FUNCTION ident=1, lineno_checksum=0x17c79156,
cfg_checksum=0xdb5de9e8
foo.gcda:  01a10000:   2:COUNTERS arcs 1 counts

Tested manually, passes regression tests. Ok for Google/4_8?

Thanks,
Teresa

-- 
Teresa Johnson | Software Engineer | tejohnson@google.com | 408-460-2413

Attachment: patch.diff
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]