valgrind日志解析器。从txt日志创建html报告。

valgrind-parser的Python项目详细描述


Build Status

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>

下表将使用上述运行生成。 在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用字符而不是字符串的意义   部分匹配长度字符串相似性的java正则表达式   java获取构造函数错误(错误:“(”或“[”)   java@Value注释无法正常工作SpringBoot   java hasKey在响应中没有看到字段   java JavaFX,没有JFXButtons和所有   在Log4j2中,是否可以根据键从记录器中筛选出某些键值对?   如何使用Java中Kafka的消息,从特定偏移量开始   java在单击后存储动态按钮的值   java Android编码:ViewRootImpl$CalledFromErrorThreadException。[Noob]   通过FileChooser保存pdf格式会提示在java中出现第二个对话框   用于空文件的java Spring集成文件标记   java我们应该如何编写get方法,以便私有字段不会超出其预期范围?   java Eclipse产品问题,Juno RequireHandle:org。日食e4。果心服务