You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vector Cast 6.3参数树中访问函数静态局部变量以开展单元测试

解决Vector Cast 6.3中静态局部变量无法在参数树显示的问题

针对你用Vector Cast 6.3测试嵌入式C代码时,静态局部变量DataCntr无法在参数树显示、无法覆盖if分支的问题,提供以下可行方案:

  • 添加测试专用辅助函数
    在被测函数所在的源文件中,新增仅在测试模式下生效的辅助接口,直接操作静态变量:

    #ifdef TEST_BUILD
    // 读取DataCntr的值
    int Get_ResetData_DataCntr(void) {
        static int DataCntr = 0u;
        return DataCntr;
    }
    // 设置DataCntr的值
    void Set_ResetData_DataCntr(int val) {
        static int DataCntr = 0u;
        DataCntr = val;
    }
    #endif
    

    编译测试工程时定义TEST_BUILD宏,Vector Cast会识别这些辅助函数,调用Set_ResetData_DataCntr(1000000)即可触发目标if分支,同时能通过Get函数验证变量状态。

  • 手动配置Vector Cast监控静态变量

    1. 在Vector Cast的测试工程中,打开被测函数ResetData的测试用例编辑界面;
    2. 切换到Static Variables(静态变量)选项卡;
    3. 点击“Add”按钮,手动输入静态变量名称DataCntr,选择对应作用域(ResetData函数内部);
    4. 保存配置后,该变量会出现在参数树中,可直接修改其值覆盖目标分支。
  • 调整编译优化等级
    检查Vector Cast的编译配置,将优化等级设置为-O0(无优化)。较高的优化等级(如-O1及以上)可能导致编译器对静态局部变量进行优化(比如合并到寄存器或消除冗余赋值),使得Vector Cast无法识别其存储位置,进而无法在参数树中显示。

内容的提问来源于stack exchange,提问作者shiv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:03:18