On 3/22/19 7:58 AM, Sebastian Roland wrote:
Hi,

I am currently trying to understand the internals of Gcov. Specifically I am wondering of the following:

1) Certain Basic Blocks are instrumented with counters that are incremented during execution. During compilation a destructor is registered that actually goes through a gcov_info struct and finds all counters in the appropriate gcov_fn_info struct(s). My question is how (and where in the source code) do the references to the various counters are linked to the gcov_info struct?

gcc/coverage.c generates the increments and the spanning tree used to determine where to place them.
2) What exactly is the purpose of the constructor (__gcov_init()) and where are the values of the passed gcov_info struct set (probably related to 1)?

It's a global constructor, libgcc/libgcov-$something

natha

--
Nathan Sidwell

Reply via email to