On 30/03/2022 13:56, Martin Liška wrote:
Example:

base64 -d log.txt | gcov-tool merge-stream

The gcov-tool uses a new tag which contains the filename of the associated gcov info file:

gcov-dump b-xilinx_zynq_a9_qemu/init.gcda
b-xilinx_zynq_a9_qemu/init.gcda:data:magic `gcda':version `B20 '
b-xilinx_zynq_a9_qemu/init.gcda:stamp 3496756572
b-xilinx_zynq_a9_qemu/init.gcda:checksum 137326246
b-xilinx_zynq_a9_qemu/init.gcda:  a5000000:  62:FILENAME `/home/EB/sebastian_h/src/lwip/b-xilinx_zynq_a9_qemu/init.gcda' b-xilinx_zynq_a9_qemu/init.gcda:  a1000000:   8:OBJECT_SUMMARY runs=0, sum_max=0 b-xilinx_zynq_a9_qemu/init.gcda:  01000000:  12:FUNCTION ident=1016818396, lineno_checksum=0xd31791e7, cfg_checksum=0x4529789a
b-xilinx_zynq_a9_qemu/init.gcda:    01a10000: 232:COUNTERS arcs 29 counts

Should I generate this filename tag to all configurations or just in case inhibit_libc is defined?

I would emit it unconditionally. Btw. why do you need the tag?

The tag was the easiest way to add the filename to the gcov information.

We need some gcov defined way to get the filename associated with a gcov information, so that the gcov-tool can generate the gcov files from the gcov information itself. In a hosted environment, it is not necessary to include the filename in the gcov information, since the instrumented executable already creates the gcov files. In a freestanding environment, the gcov information is not automatically stored to files since no file system may be available. Here, we can dump the gcov information through __gcov_info_to_gcda(). This dump is basically a concatenation of several gcov files.

An alternative to a tag inside the gcov data would be a header which is dumped before the gcov data and understood by the gcov-tool:

header : int32:filename-magic int32:version string

#define GCOV_FILENAME_MAGIC ((gcov_unsigned_t)0x6763666e) /* "gcfn" */

--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/

Reply via email to