Debugging and Coverage information

Debugging with GDB

In one terminal do:

$ ./simple.c.bin --debug
Process simple.c.bin created; pid = 20803
Listening on port 1234

In another terminal connect to this debug session:

$ gdb -q ./test
Reading symbols from ./test...done.
(gdb) target remote localhost:1234
Remote debugging using localhost:1234
0x00007ffff7dd9d90 in _start() from target:/lib64/
(gdb) continue
[Inferior 1 (process 25269) exited normally]
(gdb) q

After continue the first test is run:

Remote debugging from host
[RUN ] misc::failing
[----] /media/data/devel/Criterion/samples/simple.c:4: Assertion failed: The expression 0 is false.
[FAIL] misc::failing: (0,00s)

Child exited with status 0

And a new process is created for the next test:

Process /media/data/devel/Criterion/build/samples/simple.c.bin created; pid = 26414
Listening on port 1234

Connect your remote debugger to this test with remote target localhost:1234 and run the test with continue

To use a different port use --debug --debug-transport=<protocol>:<port>

Coverage of Criterion tests

To use gcov, you have to compile your tests with the two GCC Options -fprofile-arcs and –ftest-coverage.