diff --git a/software/utils/cruiser/README.md b/software/utils/cruiser/README.md index 9667af447f444e0307e385ab910fc6b95b383747..0ccab0ed154e525adbaac2c692226c2e7683b65d 100644 --- a/software/utils/cruiser/README.md +++ b/software/utils/cruiser/README.md @@ -1,11 +1,12 @@ # cruiser ### 项目介绍 + Cruiser是一款自动化精度分析工具。能够针对所提供的源码进行半自动化差异源分析,定位到函数级差异源码。大幅降低精度分析难度。 ### 现行版本 -1.1.0 +1.2.0 ### 二进制地址 @@ -36,8 +37,17 @@ Cruiser仅支持命令行方式进行使用,支持选项参数和配置文件 | --log-arm | 指定arm平台运行所生成日志的路径 | 默认程序运行路径下名为‘arm.log’的文件 | | --log-x86 | 指定x86平台运行所生成日志的路径 | 默认程序运行路径下名为‘x86.log’的文件 | | --log | 指定cruiser日志输出的路径 | 默认程序运行路径下名为‘log’的文件夹 | -| --log-mode | 指定日志输出的模式。支持:
**ALL(全量模式)**:将使用所有支持的模式
**STANDARD(标准输出模式)**:指定将工具的日志输出到标准输出上
**FILE(文本文件模式)**:指定将工具的日志以文本文件的形式输出到log指定的目录当中 | ALL(不区分大小写) | -| --hook-granularity | 指定插桩的粒度。支持:
**ALL(全量模式)**:使用在MPI使能场景,将带进程号打印所有进程中插桩标记的变量的md5值
**MASTER(主进程模式)**:使用在MPI使能场景,将只打印主进程中插桩标记的变量的md5值
**SINGLE(单进程模式)**:使用在非MPI使能场景,将打印该执行进程中插桩标记的变量的md5值。注意:在MPI使能场景下,将不带ramk号打印所有标记的变量的md5值 | MASTER(不区分大小写) | -| --main | 指定主函数模式下,主函数位置,以(文件路径,[类名.]函数名)的格式,支持多个指定 | - | -| --help | 获取选项信息 | - | +| --log-mode | 指定日志输出的模式。支持:
**ALL(全量模式)**:将使用所有支持的模式。
**STANDARD(标准输出模式)**:指定将工具的日志输出到标准输出上。
**FILE(文本文件模式)**:指定将工具的日志以文本文件的形式输出到log指定的目录当中。 | ALL(不区分大小写) | +| --hook-granularity | 指定插桩的粒度。支持:
**ALL(全量模式)**:使用在MPI使能场景,将带进程号打印所有进程中插桩标记的变量的md5值。
**MASTER(主进程模式)**:使用在MPI使能场景,将只打印主进程中插桩标记的变量的md5值。
**SINGLE(单进程模式)**:使用在非MPI使能场景,将打印该执行进程中插桩标记的变量的md5值。注意:在MPI使能场景下,将不带ramk号打印所有标记的变量的md5值。 | MASTER(不区分大小写) | +| --hook-style | 指定接口的风格。目前支持:INC,NATIVE。
**INC**:头文件样式,需要与dump_hook_xxx.inc匹配才能使用。
**NATIVE**:原生风格,c接口形式。 | NATIVE | +| --hook-level | 指定向下递归插桩函数的层级数,在HOOK.mode为主时生效。 | 5 | +| --hook-split | 指定插桩过程中参数过长时的切割长度。 | 2 | +| --hook-main | 指定主函数模式下,主函数位置,以(文件路径,[类名.]函数名)的格式,支持多个指定。 | - | +| --filter-path | 索引时要跳过的路径。 | - | +| --filter-file | 索引时要跳过的文件。 | | +| --help | 获取选项信息。 | - | + +### 注意事项 + +目前插装时会自动将结构体一同插入输出桩,需手动进行删除。 diff --git a/software/utils/cruiser/config_template.ini b/software/utils/cruiser/config_template.ini deleted file mode 100644 index 52599f395803fa490c417b82adf8dcee63b2aca6..0000000000000000000000000000000000000000 --- a/software/utils/cruiser/config_template.ini +++ /dev/null @@ -1,37 +0,0 @@ -[INITIAL] -# The root directory of the source code. By default, the program running directory is selected as the source code root directory -dir_root = -# The log file name output by the arm platform -log_arm = -# The log file name output by the x86 platform -log_x86 = - -[LOGGER] -# The log directory -dir_log = -# The log mode currently supports: ALL, STANDARD, FILE, CSV. -# standard: Redirect log data to standard output -# FILE: Redirect the log data to the log file -# CSV: Redirect the log data to the csv file -# Using all will apply all output modes -mode = ALL - -[HOOK] -# Hook mode. The hook mode currently supports: MAIN, LOG, and log mode is used by default -# MAIN: Hook from the main function to all variables in the sub-function called by the lower level -# LOG: Hook different variables according to the logs generated by different platforms -mode = LOG -# The process granularity of program log printing. Now supports: ALL, MASTER, SINGLE -# ALL: For multi-process programs, print the output of all processes -# MASTER: For multi-process programs, only the output of the main process (process 0) is printed -# SINGLE: For single-process programs -granularity = MASTER -# The number of levels of downward recursive hooking sub-functions takes effect when HOOK.mode is main -level = 3 -# The number of cutting for too long parameters during hook. -split = 5 -# The regular expression of analyzing flag data in the log -format_flag = {}-{}-call {}-{}-{} -# Specify the main function entry of the program, which only takes effect when 'mode' is set to MAIN -# format: (directory1, class.function), (directory2, function), ... -# NOTE: No space characters in the path!!!