DynamoRIO / DynamoRIO/dynamorio

DrCov is not usable by default

Open
#1,913 1 comment 0 reactions 0 assignees View on GitHub
Component-Tools help wanted OpSys-All Tool-DrCov Usability
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

I claim that DrCov usability can be improved. Consider trying to get coverage of hello,world:

```
% bin64/drrun -t drcov -- /work/dr/test/hello64
Hello world!
Goodbye world!

% tools/bin64/drcov2lcov -input drcov.hello64.21064.0000.proc.log
[DRCOV2LCOV] WARNING(1): No output file name specified: using default coverage.info
[DRCOV2LCOV] INFO(1): Reading input files...
[DRCOV2LCOV] INFO(1): Enumerating line info...
[DRCOV2LCOV] INFO(1): Writing output file...

% perl tools/bin64/genhtml coverage.info
Reading data file coverage.info
Found 1217 entries.
Found common filename prefix "/usr/src/debug/glibc-2.21"
Writing .css and .png files.
Generating output.
Processing file ./stpncpy.c
genhtml: ERROR: cannot read ./stpncpy.c
```

The default just don't work. The user needs to pass -src_filter to drcov2lcov to rule out all of the system libraries, but there's not always single pattern that will match all of an app's source files.

Another option of passing `--ignore-errors=source coverage.info` to genhtml will turn the errors into warnings, but pollute the html output with tons of unwanted pages about system library files.

A better solution of ignoring system libraries by default needs to be developed.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.