PCLint部分分析了一些文件

时间:2017-04-06 06:56:03

标签: rhapsody pc-lint

我们正在使用PCLint来分析我们的Rhapsody生成的代码,并希望忽略框架代码中的错误,这些错误不是由我们编写的。

这意味着PCLint应该部分使用Rhapsody生成的注释来分析一些文件。例如,以下所有三个函数都位于同一个源文件中。

此功能完全自动生成,应忽略。

static void initStatechart(SomeClass* const me) {
    me->rootState_subState = SomeClass_RiCNonState;
    me->rootState_active = SomeClass_RiCNonState;
}

在此功能中,只有标有“我们的代码在这里”的部分由我们编写,并应由PCLint进行分析。

static void rootState_entDef(void * const void_me) {
    SomeClass * const me = (SomeClass *)void_me;
    {
        me->rootState_subState = SomeClass_InitState;
        me->rootState_active = SomeClass_InitState;
        {
            /*#[ state InitState.(Entry) */

            ..... Our code is here ....

            /*#]*/
        }
        RiCReactive_schedTm(&(me->ric_reactive), 1000, SomeClass_Timeout_InitState_id);
    }
}

此功能由我们完整编写,应进行分析。

/*## operation someFunction() */
static void someFunction(SomeClass* const me) {
    /*#[ operation someFunction() */
    .... This function is fully written by us ....
    /*#]*/
}

有可能吗?也许使用一些疯狂的正则表达式的东西?

2 个答案:

答案 0 :(得分:0)

您是否尝试过加载MISRA配置文件?然后,Rhapsody将至少生成PC-Lint用于忽略违反MISRA规则的语句。

沃尔特

答案 1 :(得分:-1)

您编写的代码很简单。您只需确保检查该文件。 可以通过抑制自动生成功能中的PC-Lint警告 -esym(#,sym)抑制符号sym的消息# -efunc(#,funcname)禁止从函数funcname中发出的消息# 在您的情况下,它将是-efunc(960,* :: initStatechart)来禁止项目中所有initStatechart函数的警告960。

困难的部分是混合代码。在那里你应该使用-save和-restore,如前所述。您需要找到正确的属性或在代码中插入命令。