Kcov (35):
* Only build the system daemon if libelf isn't available
* Issue #208: Allow covering multiple binaries with the same name in the same
report
-- Simon Kagstrom <simon.kagstrom@gmail.com>,
Kcov (34):
* Issue #215: Correct build with binutils >= 2.29
* Issue #216: Don't use SIGUNUSED (Dridi Boukelmoune)
* Issue #211: Avoid blocking bash write (Mike Bland)
* Issue #198: Correct skipped breakpoint count
* Issue #92: kcov can now perform full-system instrumentation via a
daemon and statically instrumented binaries
* Issue #193: Handle all available bash output (Ashley Straw)
* Issue #187: Fix crash regression due to address verifier changes
* Issue #166, Issue #209: Describe workaround for OSX build problems
* Issue #183: python: Quote argument strings to avoid argv issues (Bashkar Rana)
* Unit tests build again
* Issue #165: bash: Provide basic parser mode to workaround bugs in the
parser
* Issue #178: Port to AArch64 (though untested!)
* Issue #180: kcov now honors LCOV_EXCL_LINE/START/STOP, so that regions of
code can be excluded from the report. Command-line options can also set
custom patterns (Me, Keith Wansbrough)
* Issue #175: kcov can now ignore unreachable lines (Thomas Neumann)
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sun Sep 10 13:11:34 CEST 2017
Kcov (33):
* Issue #167: Writers: Add pure JSON writer for gitlabCI (http://gitlab.com)
integration (Bryce Fisher-Fleig)
* Issue #162: Use Xcode build in addtion to Make for Travis
* Issue #163: Correct attaching to processes which create threads (ptrace)
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Fri Jan 13 09:59:53 CET 2017
Kcov (32):
* Issue #135: Covering binaries on OSX is now possible as well!
* Issue #114, Issue #150, Kcov also works with codecov without changes!
* Issue #152, Issue #154: bash: Correct handling heredoc special cases
* Re-enable coverity for Travis CI builds again
* Issue #148: Correct handling of PTRACE events (Niklas Ă–gren)
* Issue #139: Create kcov-solib.pipe in a tempdir if out-dir is unfifoable
* Issue #141: Make [merged] name configurable via --configure
* Issue #138: Allow setting a different css file via --configure
* Issue #140: Allow specifying command name via --configure
* Issue #144: Allow setting configuration options manually with --configure
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Tue Nov 22 12:32:41 CET 2016
Kcov (31):
* Exit with 0 when running --version (Pietro Monteiro)
* travis: Run regression tests on OS X as well
* Issue #130: bash: Correct handling of data accumulation with absolute paths
* Issue #127: Add output support for the SonarQube coverage plugin
* Refactor travis tests to use pyunit instead of Robot Framework
* Allow --repace-src when running with --merge
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sun Apr 17 09:42:12 CEST 2016
Kcov (30):
* Issue #121: Add --version to display the current kcov version
* Issue #119: Allow merged output to serve as input to another merge
session
* Issue #21: Allow builds on Mac OSX as well (Python and Bash only)
* Issue #122: Fix memory leak when adding shared libraries (jba31)
* Issue #118: Correct merging of reports collected on another machine
* Issue #116/#117: bash: Correct corner-cases for herecdocs and arithmetic
(Phil Whineray)
* Fix various spelling errors (Veres Lajos)
* Issue #110: Correct handling of vfork()
* --pid= requires an executable, actually say that as well (Vincent Gibert)
* Issue #105: Warn about --verify without binutils
* Issue #104: Correct handling of shared libraries with build-id debug
information
* Fix --skip-solibs handling
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Fri Nov 27 06:51:40 CET 2015
kcov (29):
* Tagged v28 by mistake :-)
Kcov (28):
* Don't report each invalid breakpoint on --verify (give a summary instead)
* Issue #103: html: Display error message if JavaScript is disabled in
the browser
* Issue #101: Fix regression which caused --collect-only to work only
if the source code was available.
* Coveralls: Use source_digest instead of source (current API?)
* Issue #99: Add support for looking up debug info from .gnu_debuglink
sections (Vincent Brillault)
* Issue #98: Show execution order in the HTML output and add headings for
the source view
* Issue #26: Don't warn for non-existing ELFs (typically linux-vdso.so.1)
* Issue #91: Correctly generate [merged] output after running two programs
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sat Jul 4 05:16:21 CEST 2015
Kcov (27):
* Issue #90: coveralls: Publish merged results if available
* Issue #88: bash: Correct handling of ${var#}
* Issue #87: Allow coveralls uploads when using --merge (Ricardo Martins)
* Issue #86: Fix build on distros with Python 3 as default (David Barnett)
* python: Improve handling of some corner-cases for '''-strings
* Issue #76: bash: Handle multi-line quoted strings
* Issue #60: Add --merge option to merge output of multiple runs (i.e.,
what the kcov-merge script did, but now integrated)
* Issue #81: Make --include-path= combined with --include-pattern=
coexist more naturally (i.e., consider both)
* Lookup realpath of the paths passed to --include/exclude-path=
* Issue #18: Add --verify option that checks that all breakpoints are
set on proper addresses (i.e., instruction boundaries)
* Issue #80: Fix coverage accumulation for PIE executables
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Fri May 1 19:44:04 CEST 2015
Kcov (26):
* Issue #77: Collect coverage for Position-Independent Executables
(Kang Seonghoon)
* Issue #72: Don't crash on filenames <3 characters long (Kang Seonghoon)
* Issue #71: Don't skip instructions on SIGSTOP (unbreaks PowerPC)
* Issue #70: bash: Handle $# ad ${#var ..} (not comments)
* Issue #66: bash: Unbreak handling of arithmetic shifts (conflict with
heredocs)
* Issue #65: merge-parser: Don't panic on non-existing files (e.g., if moved)
* Issue #64: bash: Always parse the file given on the command line
* Issue #63: bash: Correct check for empty braces
* Issue #62: bash: Check for balenced parenthesis (e.g., in cases)
* Issue #51: bash: Collect coverage for #!/bin/sh executables via preloading
(off by default)
* bash: Add ability to use DEBUG trap instead of PS4 (off by default, not
stable)
* Unbreak accumulation (for certain programs)
* Fix hanging regression introduced in v23 (don't take solib semaphore
before open/read)
* Report file-not-found or file-not-executable errors more clearly
* Issue #61: bash-engine: Output trace data via BASH_XTRACEFD when possible
(bash >= 4.2) and filter stdout to catch redirections otherwise
* Issue #58: Lookup program in $PATH if it's not given on the command line
* Issue #57: bash-engine: Correct handling of quoted multiline variables
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Tue Mar 17 19:16:46 CET 2015
Kcov (25):
* Make database files smaller by storing only executed addresses
* Issue #52: Don't include bash-helper.sh in the output
* Issue #54: Implement handling of coverage accumulation for shared
libraries
* Issue #50: Make sure that Bash "heredoc" markers are words
* Fix some failure handling coverity errors
* Issue #49 (WIP): Implement broken gcov engine (multiple issues still pending)
* Refactor configuration handling to be more generic (avoid setters,
use key/value pairs via strings instead)
* Add "capabilities" class to make parts of the implementation clearer
* HTML-writer: Correct off-by-one access to static data
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Tue Feb 10 19:38:04 CET 2015
Kcov (24):
* Misc performance improvements here and there
* Build: Use the travis-ci.org build service to make tests more
reliable.
* Unbreak Python and Bash coverage collection on 32-bit builds
* Correct clang build (well, in Fedora 20 it still fails)
* Issue #43: Clarify elfutils dependency
* Issue #46: Add support for uploading to coveralls.io via the
--coveralls-id=<travis-id-or-repo_token> option
* Issue #45: Bash: Fix coverage collection when executing sub-scripts as
programs.
* Issue #31: Fix handling of attaching to pid in a multithreaded process.
Implementation taken from GDB: kcov now loops through all threads in
a process and attaches to each one.
* Issue #44: Bash: Fix issues with <<< redirection, which were parsed
as here documents
* Update the HTML/Cobertura output to display single-shot, limited and
unlimited output in a logical way
* Allow three hit modes for parsers/engines: Single-shot (covered or not,
as in the merge parser), limited (as in ptrace) and unlimited (line
execution count used in Python/Bash)
* Remove some ptrace-specific stuff from the Engine interface
* Document classes better
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Mon Jan 5 09:46:29 CET 2015
Kcov (23):
* Correct use-after-free case when the solib thread is killed
* Default to 5s output interval to avoid costly write-to-disk sessions
too often
* Performance improvements for the Cobertura writer by reducing the amount
of string operations
* Add a kcov-merge command which merges data from multiple kcov
directories into a single report (Chris Love)
* Issue #39: Reduce the amount of extra output files by using filename
as a tie breaker instead of file data.
* Issue #38: Fix several bugs which caused merged output to miss data
present in the regular output
* Issue #37: Correct coverage accumulation for Python/bash
* Issue #36: Collect coverage from dlopen:ed libraries (through unconditional
breakpoints in the dlopen call). Should also improve reliability of
general shared library coverage collection
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Tue Dec 2 20:42:04 CET 2014
Kcov (22):
* Issue #35: Support installation RPATH for build (Chris Love)
* Issue #32: Fix problems when running Python unittest modules
* Various coverity resource leak fixes
* Peek into files to improve performance for matching (also see Issue #33)
* Break out solib handling from ptrace (not really related)
* Improve ptrace performance a bit, while also simplifying code
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Wed Oct 29 12:58:18 CET 2014
Kcov (21):
* Fix regression for coverage-of-32-bit-binaries-on-64-bit-systems introduced
in kcov 20
* Slightly better file stat caching (slight performance improvement)
* Avoid outputting merged cobertura output for single coverage runs
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Thu Aug 7 20:00:20 CEST 2014
Kcov (20):
* Issue #25: Fix starvation bug where long report generation time could starve
the actual application. The bug was caused by a timestamp issue.
* Issue #18: Provide explanation and possible workaround for SIGILL problems
with GCC 4.1.2
* Issue #23: Warn if a binary has no debug symbols
* Replace std::list/std::map with std::list/std::unordered_map where possible
(slight performance improvement)
* Remove C++11 constructs (auto, nullptr, range-based for-loops) to allow
building with older compilers
* Correct bug in --report-only (crash in ptrace upon termination)
* Slight performance improvement and simplification in the lineid code
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Mon Aug 4 12:57:19 CEST 2014
Kcov (19):
* bash coverage: Implemented support for collecting shell script
(sh/bash) coverage! Loosely based on shcov, which is now deprecated
because of this
* html-writer: Correct executable lines/covered lines in the summary
(was wrong in some cases)
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Mon Jun 30 18:30:37 CEST 2014
Kcov (18):
* Performance: Improve performance by cacheing realpath()
* HTML: Always put merged results last and don't include them in sorting
* HTML: Coloring improvements (?) of the HTML output
* HTML: Refactor HTML output completely to use javascript-based pages.
This allows selecting how to sort directly from the web page,
and greatly simplifies the generating C++ code
* Correct filtering bug in the merged output, where the last
run would filter out data from the previous runs
* Issue #20: Fix hanging-on-killed-by-signal
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Mon Jun 9 19:12:38 CEST 2014
Kcov (17):
* Issue #19: Fix bug where kcov would let children which called
setpgid live even after terminating kcov itself (Oliver)
* Issue #16: Output: Implement a merged mode, which shows a
combination of all covered programs under the [merged] link
* Fix an HTML output bug introduced in kcov 14 where the summary
counts in the index page would be wrong.
* Issue #15: Fix a crash when source lines are > ~2000 characters long
* Issue #17: Fix parsing of multiple include/exclude patterns
(Jamie Kirkpatrick)
* Split usage in common/uncommon options
* Improve unit tests and robot framework tests
* Various work on the kernel-engine and general refactoring
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sun May 18 19:24:14 CEST 2014
Kcov (16):
* kernel-engine: Implement an engine to handle kernel code coverage
collection (not finished)
* kprobe-coverage: Refactor the kernel module so that it basically
works now
* Code refactoring and more C++11-izing
* Python: Filter out some false negatives (i.e., non-executable
lines marked as red)
* Python: Report absolute paths so that output filtering works
* Python: Catch exceptions in the python helper to avoid EOF etc
being propagated upwards (and coverage collection to fail)
* Python: Fix a case where the engine would simply hang on waiting
for more data
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Fri Mar 21 16:38:28 CET 2014
Kcov (15):
* Workaround a shared-library issue where kcov would sometimes hang on
the malloc. The workaround uses a static memory buffer instead.
* Implemented support for collecting Python code coverage! Usage is the
same as for compiled code.
* Code-restructuring to allow multiple "engines", which makes it possible
to add the python support above.
* More C++11-izing of the code
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sun Mar 2 10:50:00 CET 2014
Kcov (14):
* Add two options, --collect-only and --report-only to only collect
coverage and produce Cobertura/HTML output respectively. Can be
used for example on embedded systems where the source code isn't
available.
* PowerPC support has been added (thanks to Aleksandr Vilchinskii and
Konstantin Polivtsev for testing this)
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Wed Feb 5 19:42:03 CET 2014
Kcov (13):
* Don't hang the kcov main process if a breakpoint comes in
before the solib handler constructor has executed (depends on
the construction order)
* Correct bug with realloc in solib handling (malloc all
data once only)
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sun Dec 8 19:34:37 CET 2013
Kcov (12):
* Fix lockup bug in the solib code path (where processes with
many solibs would hang at startup)
* Correct a crash in the reporter
* Add test case for signals
* Report from main thread to avoid threading issues
* Fairly major refactoring of ptrace code to avoid an issue
where two PTRACE_CONTINUE calls could be done without
waitpid() in between. This would cause crashes in the
traced program.
* Add support for looking for debug info in separate files
via build-id (Alexander Larsson)
* Add --exit-first-process option to fork kcov when covering
daemons (otherwise kcov will wait for all children to finish)
* Add --skip-solibs option to disable processing of shared
libraries, which also works around a bug which sometimes
triggers
* Add --replace-source-path option for cases where the sources
have been moved (James Warner)
* Fix linking (Igor Murzov)
* Some build fixes to make it build with clang++
* Fix various warnings
* Add experimental profiler based on kcov
* Add sorting by reverse-percent (high -> low, -u option)
* Cache non-existing files to avoid doing lstat calls all the
time (slight performance improvement)
* closedir() was not called from the html-writer, which creates
a resource leak (Karl Vogel)
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sat Oct 19 11:06:42 CEST 2013
Kcov (11):
* Fix handling of common paths in HTML writer
* Fix bug in shared library handling where repeated exec()s would
cause strange hangs. Fixed by unsetting the KCOV_SOLIB_PATH environment
variable after the first executable has been started.
Add test-popen test case to check for this.
* Expand ~'s in the --include-path and --exclude-path options
* Unbreak accumulating data from multiple runs again (introduced
sometime during refactoring), and add test case for this
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sat Aug 18 08:45:03 CEST 2012
Kcov (10):
* Fix bug where multiple files with the same name would only be shown
once in the HTML output.
* Fix icache conflict bug (present while instrumenting shared libraries)
on multi-CPU systems by forcing all traced processes to one CPU
* Re-enable the --pid=PID argument to trace a running process again
* Fix race condition in the reporter
* Only set breakpoints in executable sections. This avoids problems where
the DWARF line information points to non-code sections (which can happen)
* Fix coverage reporting of orphaned children (where the parent does not
wait(2) for the child
* Use std::unordered_map for breakpoints (improves performance somewhat)
* Improve unit tests
* Add robot-framework testsuite that can be run from a Jenkins server
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Mon Jul 23 13:28:43 CEST 2012
Kcov (9):
* Completely refactor the source code (yes, everything!), and add
unit tests to verify kcov itself. The code is now in C++.
* Implement transparent coverage instrumentation for shared libraries
(done automatically)
* Implement a Cobertura-compatible XML backend. This allows integrating
kcov coverage information in Jenkins.
* Improve performance a lot by filtering out files already at the
instrumentation step (and not only during HTML generation). This
means that --include-pattern/--include-path can improve kcov performance
by quite a bit.
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Fri Jun 15 17:39:17 CEST 2012
Kcov (8):
* Import the man-page from Debian and update it.
* Simplify parts of the ptrace code
* Correct the sorting of files-by-percentage when the difference
is less than 0.5% (thanks Martin!).
* Correct the percentage-bar color according to the configured
limits in the report.
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sun Dec 4 14:13:47 CET 2011
Kcov (7):
* Weed out common parts of source paths from the report, display
the full path as the HTML title= tag
* Fix crash bug in argument passing
* Handle hit count a bit better
-- Simon Kagstrom <simon.kagstrom@gmail.com>, 2011-07-10
Kcov (6):
* Correct hit count. The hit count is no longer over the number of
possible hits
* Better error reporting when stripped or otherwise broken binaries
are passed to kcov
* Handle files with relative directory paths (lookup the absolute
path via DWARF source files). Otherwise, some files are not reported
in the output.
* Add test program to detect regressions
* Detect stripped binaries and report that you'll need to build
with -g
* Correct --include/exclude-path behavior. The previous version
will match PATH*/* instead of just PATH/* (Igor Murzov)
* Various small fixes
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sat Apr 16 08:28:27 CEST 2011
Kcov (5):
* Switch from libdwarf to libdw (from elfutils) for building
kcov. libdw is a bit more logical than libdwarf.
* Implement actual path matching (Igor Murzov)
* Rename path-matching to pattern matching (which is what it does)
and set it up using long options.
* Parse options with getopt
* Don't escape all multibyte characters in the report. That will
break display of UTF-8 etc (Igor Murzov)
* Improve cmake packaging support (Igor Murzov)
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sat Feb 12 15:25:57 CET 2011
Kcov (4):
* Build system is now based on cmake (Igor Murzov)
* Add MIPS32, ARM and PowerPC architecture support. This is untested though
and might very well not work at all.
* Add -t option to set the title of the program to test (otherwise it
will be the filename)
* Refactored the architecture support to allow running i386 programs
on x86_64 machines, and easier add other architectures
* Make it possible to collect coverage from multiple programs in a
single directory, useful for example when running a test suite
* Add coverage color to the header as well
* Misc refactoring
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Tue Dec 7 18:20:28 CET 2010
Kcov (3):
* Various bug fixes
* Add ability to trace running processes by PID
* Fix copyright headers
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sat Nov 13 08:13:03 CET 2010
Kcov (2):
* Misc fixes
* Add ability to specify low/high limits
* Add state saving between runs. Re-starting the same program
will then add to existing coverage instead of starting from
scratch.
* Link to web page in the report
* Add option to sort by percentage or file name
-- Simon Kagstrom <simon.kagstrom@gmail.com>, Sun Oct 24 09:15:39 CEST 2010
Kcov (1):
* Initial release
-- Simon Kagstrom <simon.kagstrom@gmail.com>