鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

BC文件生成命令参考

BC文件用于内存一致性检查和向量化检查,需与内存一致性检查或向量化检查联用。

命令功能

通过扫描源码文件生成对应的BC文件。

生成BC文件之前需要修改构建文件:

  • 替换编译命令:若构建文件中有gcc、g++、gfortran或ld,需要替换成对应的gclang、gclang++、gflang或llvm-link。

    llvm-link不支持链接库文件,若ld命令中存在库文件,请根据所使用的代码语言,使用gclang、gclang++、gflang替换ld命令。

  • 调整编译选项:修改优化等级“-O0”,增加“-g -fno-inline-functions”。

命令格式

devkit advisor bc-gen {-i INPUT_PATH | --input INPUT_PATH} {-c COMMAND | --cmd COMMAND} [-o OUTPUT_PATH | --output OUTPUT_PATH] [-l {0,1,2,3} | --log-level {0,1,2,3}] [--set-timeout TIMEOUT]

参数说明

表1 参数说明

参数

参数选项

参数说明

-h/--help

-

获取帮助信息。

-i/--input

-

需要生成BC文件的源码文件夹路径。

说明:

若源码文件包含多个子目录且在编译时多个子目录之间相互依赖,单独扫描子目录时,请输入整个源码文件,在-c参数中增加cd命令进入到子目录中。

-c/--cmd

-

源码的构建命令。

-o/--output

-

生成BC文件的存放路径,需要有写权限。报告默认存放在当前路径下,名称默认为“模块名_时间戳”。

--set-timeout

-

任务超时时间,单位为分钟,若执行时间超过超时时间则退出执行。默认无超时时间,任务将持续执行直到结束。

-l/--log-level

0/1/2/3

设置日志级别,默认为1。

  • 0:日志级别为DEBUG。
  • 1:日志级别为INFO。
  • 2:日志级别为WARNING。
  • 3:日志级别为ERROR。

使用示例

此处以扫描“/home/test”下源码文件,编译命令为make,BC文件保存在“/home/test/bc_files”下为例。

devkit advisor bc-gen -i /home/test -c make -o /home/test/bc_files
返回信息如下,并输出报告。
Executing bc generate task, please wait...
Current progress: 
Scanned time: 20240110200505123
Configuration:
     Scan source code path: /home/test
     Generate bc files path: /home/test/bc_files
     Task Timeout Interval: The timeout period is not set.
     Log level: info

Summary: 
    Scanned all source files, there are 2 bc files generated.
For the detail information, please check
    /home/test/bc_files/bc-gen_20240110200505123_0c24