首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

将Linux C/C++应用程序从x86平台移植到IBM PowerLinux(4)

将Linux C/C++应用程序从x86平台移植到IBM PowerLinux(4)

void foo() {    short int val = 0xFF00;    char *char_pointer = (char *) &val;         //This prints 0 in x86 (or x86_64) machines and ff in ppc (or ppc64) machines.    printf("%x\n", *char_pointer);}        Migration Advisor 使用 Eclipse CDT Code Analyzer (Codan) 源代码分析器来查找 C/C++ 源代码中的潜在迁移问题,比如可能在 x86 和 POWER 服务器上运行时生成不同结果的代码块。要查找源代码中的问题,Codan 会分析 C/C++ 源代码抽象语法树 (AST),查找可能与 Power Architecture 不兼容的代码段。在找到潜在问题时,Migration Advisor 会保存该问题在代码中的位置,并在源代码中的这个特定位置添加一条警告。目前,Migration Advisor 仅兼容 C/C++ 代码。
        以下是在 IBM SDK for PowerLinux 中使用 Migration Advisor 的屏幕截图。
        图 2. 运行 Migration Advisor ‘Union with Endianness Issues’ 检查器


        Migration Advisor:快速修复特性
        Migration Advisor 还为一些迁移问题提供了快速修复方法,能够将依赖于架构的代码块替换为与 POWER 处理器兼容的指令。可以通过两种方式触发快速修复:右键单击源代码中的警告并选择快速修复选项;或者打开 Migration Advisor Eclipse View,右键单击一个特定问题,然后选择快速修复选项。
        Migration Advisor 所提供的快速修复仅适用于:
  •                 特定于 x86、内置的编译器的使用
  •                 内联程序集的使用
  •                 性能降级
        您可以选择可激活或可停用的检查器。每次您修改源代码后,Migration Advisor 都将重新检查代码并更新结果,使您在对项目执行完成的重新构建之前有机会快速识别和解决问题。图 3 显示了 Migration Advisor 窗口,其中已激活所有检查器。
        图 3. 激活所有检查器

        激活 Migration Advisor 检查其后,右键单击项目并单击 Run Migration Advisor。然后,Migration Advisor 会使用启用的检查器分析代码,并在 Eclipse 视图中显示找到的潜在问题的结果(参见图 4)。
        图 4. Migration Advisor 视图

        图 5 显示了一个不受 Power 平台支持的内置插件所导致的一个真实迁移问题的示例。为了修复该问题,可以在 Migration Advisor Eclipse 视图中双击它。然后将打开源代码视图,突出显示问题的准确位置。如果将鼠标移动到突出显示的代码上方并按 Ctrl+1,则会打开另一个弹出窗口,如图 5 所示。
        图 5. 使用 Migration Advisor 进行快速修复


        选择第一个选项 Builtin quick fix。应用快速修复后的结果代码如图 6 所示。
        图 6. 应用 Migration Advisor 快速修复后的代码


        其他有用的 Migration Advisor 检查包括:
  •                 特定于 x86 的程序集检查器
  •                 包含位字段的结构的检查器
  •                 Long double 使用检查器
  •                 性能降级检查器
  •                 特定于 x86 的编译器内置检查器的使用
继承事业,薪火相传
返回列表