A tool to help with annotating source code based on found Coverity issues
Find a file
2022-03-05 00:43:35 +01:00
app Initial version 2022-03-01 22:13:15 +01:00
example Implement loading of automatic annotation files 2022-03-05 00:43:35 +01:00
script Build annotator to bin directory 2022-03-04 21:21:20 +01:00
src Implement loading of automatic annotation files 2022-03-05 00:43:35 +01:00
.gitignore Install README into doc folder 2022-03-04 21:24:17 +01:00
Makefile Install README into doc folder 2022-03-04 21:24:17 +01:00
README.md Add README.md 2022-03-04 21:21:20 +01:00

Annotator - an interactive TM2/TM3 annotation tool

This tool lets you interactively annotate your code given a =defects.err= file.

Installation

Get the most recent release, unpack it and add the binary to your PATH.

How to use it

After a /Coverity™/ run, you end up with a =defects.err= and would like to annotate your code accordingly. In order to do so, just execute the =annotator=:

annotator

This will by default use the =defects.err= file in the current directory and scan it for violations. It will then ask you what to do with each violation - by default only /Newest/ violations will be handled, but this can be overridden with a command-line switch.

After all violations have been treated, you'll end up with a bunch of =*.fix= files next to each source file - those are the annotated source files - you may run diff on them to check if they look fine or just move them over your original source file.

Possible annotations

The annotator is able to generate three kinds of annotations:

  • Intentional - by pressing i, this will annotate with coverity[rule] <reason>
  • False-Positive - by pressing f, this will annotate with coverity[rule : FALSE] <reason>
  • Todo - by pressing t, this will annotate with a FIXME marker

Advanced usage scenarios

The current annotator supports the following command-line arguments:

$ annotator --help
Usage: annotator [OPTIONS] files...

A tool to semi-automatically add Coverity source-code annotations based on found defects.


  -v       --verbose           be more verbose, pass multiple times to increase verbosity
  -i       --inplace           replace source-file after inserting annotations
  -V       --version           show version
           --short-version     show version
  -h       --help              show usage information
  -a       --all               handle all defects not just Newest
  -C[NUM]  --context[=NUM]     specify how much context should be shown around a violation

In-place annotations

The annotator allows to annotate in-place, i.e. it will automatically rename the .fix file after you are done with all violations within that file. This can be achieved by passing -i or --inplace.

Process all violations

By default the annotator will only handle Newest violations and not those that are already contained within the Coverity database for some reason. However, it's still possible to process all found violations by passing -a or --all on the command-line.