valgrind日志解析器。从txt日志创建html报告。
valgrind-parser的Python项目详细描述
Valgrind解析器工具
此工具帮助解析由valgrind工具生成的valgrind日志。在
先决条件
成功运行valgrind_log_parser.py
所需的唯一包在requirements.txt
中提到。
使用pip安装这些需求。在
pip install -r requriements.txt
Pip安装
也可以从pip安装valgrind解析器工具。在
^{pr2}$将包导入为
>>>fromvalgrind_parserimportValgrindLogParser>>>vlp=ValgrindLogParser('/path/to/valgrind_logs.txt')>>>vlp.generate_html_report()
这将把输入valgrind_logs.txt
的html报告转储到调用程序的同一目录中。在
克隆回购
Valgrind-Log-Parser
也可以通过在本地克隆repo并直接使用python文件来使用。
使用下面的命令克隆repo,并按照下面几节中的说明使用。在
git clone git@github.com:<your username>/Valgrind-Log-Parser.git
如何使用
在test-leaker目录下,test_leaker.c
文件存在。此文件存在内存泄漏,并且使用以前未初始化的变量进行条件检查。
当使用valgrind运行时,valgrind报告应该突出这两个方面。在
#include<stdio.h>#include<stdlib.h>intmain(){int*memory_allocation_var=malloc(1000);// Leaked memory which is never freedintconditional_jump_variable_without_initialize;if(conditional_jump_variable_without_initialize>0){// Variable used without initializationprintf("Variable not initialized still using here \n");}return0;}
编译C文件
要在Linux环境下编译c文件,必须使用gcc
和-g
选项,这将启用二进制文件中的调试符号。在
gcc -g test_leaker.c -o test_leaker
编译成功后,从valgrind_website中提到的官方源安装valgrind,并使用test_leaker
二进制文件执行。在
valgrind -v --leak-check=full --show-reachable=yes --log-file=valgrind_log.txt ./test_leaker
这将转储valgrind_log.txt
中的valgrind日志
使用valgrind_log_parser.py
--help
参数有助于理解如何使用这个解析器。在
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
在valgrind_log_parser.py
的参数中提供valgrind_log.txt
文件,它将在同一目录中用它创建一个HTML报告。在
python valgrind_log_parser.py --valgrind_file <path to valgrind_log.txt file>
下表将使用上述运行生成。 在
- 项目
标签: