- Notifications
You must be signed in to change notification settings - Fork1
Ximaz/valgrind-action
Use this GitHub action with your project
Add this Action to an existing workflow or create a new oneFolders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A GitHub Action for checking your memory management usingValgrind.
This Action will check for :
- un
free
'd memory, - invalid
read
orwrite
operations, - un
close
'd file descriptors (files and sockets), - invalid usage of
free
,delete
,delete []
orrealloc
, - uninitialised
syscall
params, - overlaps between sources and destinations for
memcpy
,memmove
, etc..., fishy
arguments (possibly negative values) forunsigned
expected,- memory allocation with a size of
0
, - invalid alignment values.
If you want to have more details about the errors this Action supports, you cancheck the4.2. Explanation of error messages from Memcheck
section.
-uses:Ximaz/valgrind-action@v1.2.0with:# Either absolute or reative path to the binary you want to check the# memory on.binary_path:""# A string containing all the arguments to pass the the binary when it# gets checked by Valgrind.## Default: ""binary_args:""# The value of the `LD_LIBRARY_PATH` environment variable so that the# binary can be executed with your custom libraries, if any.## Default: ""ld_library_path:""# Redzone size used by Valgrind. It represents the blocks that Valgrind# will check before, and after any allocated pointer so that it will# look if you're trying to operate on those bytes, which you are not# supposed to.## Default: 16redzone_size:16# Whether or not to track unclosed file descriptors.# Default: truetrack_file_descriptors:true# Whether or not to treat error as warning. This implies that, if set# to true, then the action will not exit with an error status, even if# Valgrind found issues during the binary execution. Also, this implies# that in your workflow summary, you will see warning annotations# instead of error ones.## Default: falsetreat_error_as_warning:false# Valgrind suppressions. If specified, the content will be written into# a local file which will be passed to Valgrind. It represents a set of# specific checks to avoid. For instance, you can avoid checks for a# specific function, inside a specific program or library, etc...# Foe more detail, you can check the `2.5. Suppressing errors` section# on the Valgrind's documentation :# https://valgrind.org/docs/manual/manual-core.html## For each found error by Valgrind, a generated suppression will be# logged inside your workflow's logs. That way, you will be able to see# if any dependency, unrelated to your implementation, is faulty for# not free'ing it's own memory or file descriptors.## Generally, you want to avoid using this because you may tend to use# it badly in order to suppress errors about your own implemnetations,# so be careful.## Default: ""## The example below showcases how to avoid checking for the `free`# function, inside the `main` function.valgrind_suppressions:| { DontCheckFreeInMain Memcheck:Free fun:free fun:main }# Whether or not Valgrind should be verbose. It may be useful in case# you want to debug things.## Default: falseverbose:false# Limit the amount of time Valgrind runs before stopping the binary,# specified in floating point with an optional suffix. A duration of 0# disables the timeout.## This can be useful to test or bound a long-running process.## Optional suffix:# - 's' for seconds (the default)# - 'm' for minutes# - 'h' for hours# - 'd' for days## Default: 0stimeout:0s
About
A GitHub action allowing you to check for memory leaks on your binaries, libraries and unit tests.
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.