中文
注册
Rate
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

差异分析工具

从前文介绍的插桩分析计算结果差异方法中可以看出,在定位过程中有着大量的重复插桩动作,为了提高分析效率,Hawkeye是基于GDB的调试功能开发的,能够自动对函数插桩,递归遍历函数调用,自动记录存在计算差异函数的分析工具。

图1 hawkeye工具使用流程

使用条件约束

  1. 本工具使用到GDB调试功能和依赖二进制中的符号表,需要待分析应用编译选项优化等级改至-O0和增加-g选项。
  2. 本工具只支持单线程调试,不支持openMP。

使用步骤

下面以WRF 3.4.1应用进行举例。

  1. 修改编译选项,优化等级更改为-O0,增加-g,删除-fopenmp、-qopenmp。
  2. WRF应用链接print_md5.o静态库库,该静态库包含读写输入值,计算输出md5功能。需要放在wrf.exe同目录,也可以自行指定目录。

    修改main/Makefile文件,修改前:

    $(LD) -o wrf.exe $(LDFLAGS) -fopenmp wrf.o ../main/module_wrf_top.o $(LIBWRFLIB) $(LIB)

    修改后:

    $(LD) -o wrf.exe $(LDFLAGS) -lcrypto print_md5.o wrf.o ../main/module_wrf_top.o $(LIBWRFLIB) $(LIB)
  3. 将WRF二进制文件,算例,和hawkeye工具放在同一目录。指定应用名称和主函数文件路径运行hawkeye工具。
    ./hawkeye.sh wrf.exe wrf-3.4.1/dyn_em/solve_em.f90
    图2 hawkeye工具分析结果

    分析结果会显示出鲲鹏和x86平台存在计算差异的函数及其路径,为方便开发人员定位,还显示出函数的调用堆栈。图3所示的是保存各个函数具体的MD5值文件的树状图,开发人员可以查看具体的md5打印文件来进一步分析引起差异的原因。

    图3 hawkeye工具保存函数输出md5值的文件
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词