中文
注册

示例1:64位运行模式检查

本示例主要是演示如何使用鲲鹏DevKit亲和分析工具的64位迁移预检功能,将x86平台GCC 4.8.5~GCC 10.3.0版本原32位的应用迁移到64位平台上,进行迁移检查并给出修改建议。

  1. GithubGitee代码样例获取待使用的软件源码包。

    下载的源码包为devkitdemo-main.zip,解压后的“./devkitdemo/Porting_advisor/testdemo/precheck/”为源码迁移的待扫描代码。

  2. 进入鲲鹏DevKit,在左侧列表中单击“亲和分析 > 64位运行模式检查”进入64位运行模式检查任务创建页面。

    在随后出现的相关配置项和按钮中,单击“上传”,上传precheck源码包。

    单击输入框,选择源代码存放路径为“/opt/DevKit/workspace/devadmin/affinity/precheck/”,如图1所示。

    图1 64位运行模式检查
  3. 单击“开始检查”,分析完成后单击报告页面的“源码修改建议”或对应源码文件右侧的“查看建议源码”,如图2所示。
    图2 64位运行模式检查报告
    本示例以扫描precheck文件夹为例,扫描结果显示32-64平台进行迁移需要进行修改的代码行,如表1所示。
    表1 扫描结果

    文件

    代码行

    处理建议

    修改后的代码

    func001.c

    第26行char a = m;

    Suggestion: // This line needs to be adapted for the 64-bit environment.

    char a = (char)m;

    func001.c

    第28行c = c+i;

    c = (char)((int)c +i);

    func002.c

    第26行c = p;

    c = (char *)p;

    func003.c

    第23行unsigned char *s = c;

    unsigned char *s = (unsigned char *)c;

    func004.c

    第25行int q = &a;

    long int q = (long)&a;

    func004.c

    第28行p = &a;

    long int p;//修改第26行

    p = (long)&a;

    func004.c

    第30行test = s;

    long int test = 10;//修改第22行

    test = (long)s;

  4. 对各个代码行进行修改,重新扫描源码,出现如图3所示。
    图3 重新扫描报告
  5. 对原始文件执行make,结果如图4所示。
    图4 执行make

    按照要求进行修改后,重新执行make,结果如图5所示。

    图5 重新执行make

    从中可以看出和32-64迁移相关的warning信息已经全部清除。

搜索结果
找到“0”个结果

当前产品无相关内容

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