Skip to main content

Build Status

Valgrind Parser Tool


This tool helps to parse the valgrind logs generated by a valgrind tool.

Pre-requisites

The only package needed for successful run of valgrind_log_parser.py is mentioned in requirements.txt.
Use pip to install these requirements.

pip install -r requriements.txt

Pip install

One can install valgrind parser tool from pip as well.

pip install valgrind_parser

Import the package as

>>> from valgrind_parser import ValgrindLogParser
>>> vlp = ValgrindLogParser('/path/to/valgrind_logs.txt')
>>> vlp.generate_html_report()

This will dump the html report for input valgrind_logs.txt in the same directory from where the program was called.

Cloning the repo

Valgrind-Log-Parser can also be used by cloning the repo locally and using the python file directly. Clone the repo with below command and use as given in next sections.

git clone git@github.com:<your username>/Valgrind-Log-Parser.git

How to use

Under test_leaker directory, test_leaker.c file is present. This file is having a memory leak and a condition check with a variable which is not initialized before.
When run with valgrind, the valgrind report should highlight these two things.

#include<stdio.h>
#include<stdlib.h>

int main(){
    int *memory_allocation_var = malloc(1000); // Leaked memory which is never freed
    int conditional_jump_variable_without_initialize;
    if (conditional_jump_variable_without_initialize > 0){ // Variable used without initialization
        printf("Variable not initialized still using here \n");
    }
    return 0;
}

Compile C file

To compile c file on Linux environment, one must use gcc with -g option which enables debug symbols from the binary.

gcc -g test_leaker.c -o test_leaker

Post successful compilation, install valgrind from its official source mentioned at valgrind_website and execute with our test_leaker binary.

valgrind -v --leak-check=full --show-reachable=yes --log-file=valgrind_log.txt ./test_leaker

This will dump the valgrind logs in valgrind_log.txt

Using valgrind_log_parser.py

The --help argument can help to understand how to use this parser.

python valgrind_log_parser.py --help
usage: valgrind_log_parser.py [-h] --valgrind_file VALGRIND_FILE

optional arguments:
  -h, --help            show this help message and exit
  --valgrind_file VALGRIND_FILE
                        Provide the path of the valgrind file. Files must be
                        of .txt format

Provide valgrind_log.txt file in argument to valgrind_log_parser.py and it will create a HTML report out of it in the same directory.

python valgrind_log_parser.py --valgrind_file <path to valgrind_log.txt file>

Following table will be generated with the above run. Valgrind HTML Report

Release files for valgrind-parser 2.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for valgrind-parser 2.0.3
File Size Uploaded
valgrind_parser-2.0.3.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for valgrind-parser 2.0.3
File Interpreter ABI Platform
valgrind_parser-2.0.3-py2-none-any.whl Python 2 none any Details

Total release size: 13.1 kB

Release files / valgrind_parser-2.0.3.tar.gz

Download URL valgrind_parser-2.0.3.tar.gz
Size 5.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ce06855da2eb06d5395f86307998299e7864a901bf6a7ebb958c4c9590fbec83
BLAKE2b-256 checksum
How to use checksums
5dbb137cbade5244b8db8facb2c037fd5710ad30bbaafe2ea53a73909f494527
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.12

Release files / valgrind_parser-2.0.3-py2-none-any.whl

Download URL valgrind_parser-2.0.3-py2-none-any.whl
Size 7.9 kB
Tags Python 2
SHA-256 checksum
How to use checksums
a5b0b158b76f2691e9afe5a2141a3d359437bcec5386e40e4d3b4bf5a0967a42
BLAKE2b-256 checksum
How to use checksums
fe71dabfca9315cb2381ec13ec08d90433ca3c321fe4fa2ff52d6c1b067da954
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.12

Release history Release notifications | RSS feed

This release

2.0.3 This release

2 release files

2.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page