On 30/03/2022 15:30, Sebastian Huber wrote:
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" */
Thanks for asking the question. The alternative with the header is much
less intrusive. I will work on this approach now.
Another question, I would like to add an option to gcov-tool to
transform the filenames using regular expressions (for example, remove
or add a prefix). Can I use the C++ <regex> for this?
--
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/