Tristan Gingold wrote:
On Wed, Jul 29, 2009 at 10:33:25AM +0200, Sylvere Teissier wrote:
Le vendredi 20 février 2009 à 23:30 +0100, Sylvere Teissier a écrit :
Arnim Läuger wrote:
What is the exact error message?
I just gave it a try with ghdl 0.27 and it analyzed a file without any
problems:
$ ghdl -a --std=93c --workdir=work -Wc,-ftest-coverage
-Wc,-fprofile-arcs ../src/T80/T80_MCode.vhd
$ ll
work
T80_MCode.gcno
Analysis works too on my platform (debian lenny - ghdl0.27+svn110+gcc4.3.2),
but  I have a "seg fault" when running  gcov after design execution :(
Am I the only one to have this problem, or is it a general bug ?

Code Coverage is an important feature, if this is a bug how can I help
to solve it?

Hi Sylvere,

I have tried gcov with ghdl 0.28 and it worked.  One possible issue is that
your gcc version must be the same as the one used by ghdl (ie 4.3.x).
Can you check that ?
Maybe this constraint is too hard, and maybe I should include a ghdl-gcov
tool.
It nearly works:

----------------------------
test.gcno:no lines for 'work__test__ELAB'
File 'test.vhd'
Lines executed:91.67% of 12
test.vhd:creating 'test.vhd.gcov'

File ''
No executable lines
:creating '.gcov'
:cannot open source file
-------------------------

The generated test.vhd.gcov is correct. But there is an error in the gcno in "work__test__ELAB":
if I run gcov-dump I get:


test.gcno:note:magic `gcno':version `403*'
test.gcno:stamp 3898939573
test.gcno:3: 01000000: 13:FUNCTION ident=3, checksum=0xee98a117, `work__test__ELAB' test.vhd:0
test.gcno:18:  01410000:   3:BLOCKS 3 blocks
test.gcno:20:        0 0000 0000 0000
test.gcno:23:  01430000:   3:ARCS 1 arcs
test.gcno:26:    block 0: 1:0004
test.gcno:28:  01430000:   3:ARCS 1 arcs
test.gcno:31:    block 1: 2:0001
test.gcno:33:  01450000:  10:LINES
test.gcno:36:    block 1:`test.vhd'
test.gcno:41:    block 1:`'
test.gcno:record size mismatch 1 bytes overread
test.gcno:45: 01000000: 15:FUNCTION ident=4, checksum=0x54cfe1c5, `work__test__ARCH__test__f' test.vhd:1
test.gcno:62:  01410000:   3:BLOCKS 3 blocks
test.gcno:64:        0 0000 0000 0000
test.gcno:67:  01430000:   3:ARCS 1 arcs
test.gcno:70:    block 0: 1:0004
test.gcno:72:  01430000:   3:ARCS 1 arcs
test.gcno:75:    block 1: 2:0001
test.gcno:77:  01450000:  10:LINES
test.gcno:80:    block 1:`test.vhd':1, 8
test.gcno:89: 01000000: 17:FUNCTION ident=5, checksum=0x6e31d39d, `work__test__ARCH__test__P0__PROC' test.vhd:8
test.gcno:108:  01410000:  28:BLOCKS 28 blocks
test.gcno:110:        0 0000 0000 0000 0000 0000 0000 0000 0000
test.gcno:118:        8 0000 0000 0000 0000 0000 0000 0000 0000
test.gcno:126:        16 0000 0000 0000 0000 0000 0000 0000 0000
test.gcno:134:        24 0000 0000 0000 0000
test.gcno:138:  01430000:   3:ARCS 1 arcs
test.gcno:141:    block 0: 1:0005

As you can see there an error at test.gcno:41 and that's why gcov search and not find < File '' >

-------various informations:

$ghdl -v
GHDL 0.28 (20090917) [Sokcho edition]
Compiled with GNAT Version: 4.3.4
GCC back-end code generator

--------------------------------------------

$/usr/lib/ghdl/bin/gcov -v
gcov (GCC) 4.3.3

---------------------------------------
build steps:

ghdl -a -Wc,-ftest-coverage -Wc,-fprofile-arcs test.vhd
ghdl -e -Wl,-lgcov test
./test
/usr/lib/ghdl/bin/gcov test



entity test is
end entity;

architecture test of test is

function f(a:bit)return bit is
begin
  return not a;
end function;

signal a:bit:=f('1');
begin

  process
  begin
    a<='0';
    wait for 40 ns;
    a<='1';
    wait for 40 ns;
    if a='1' then
      a<='0';
    else
      a<='1';
    end if;
    wait;
  end process;

end architecture;


_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to