2017-04-06 18 views
0

우리는 랩소디 생성 코드를 분석하기 위해 PCLint를 사용하고 있으며 우리가 작성하지 않은 프레임 워크 코드의 오류를 무시하고 싶습니다.PCLint는 부분적으로 일부 파일을 분석합니다

이것은 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 .... 
    /*#]*/ 
} 

가능합니까? 어쩌면 미친 정규식을 사용하고 있을까요?

+0

-save 및 -restore 옵션은 아마도 솔루션의 일부일 수 있습니다. 예 : PC-lint를 -w0 옵션과 함께 호출하여 모든 경고를 초기에 비활성화하십시오. 그런 다음/* lint -save -w3 * /와 lint -restore * /를 코드 주위에 (또는 사용하려는 경고 수준으로) 넣고 해당 부분에 대한 경고를 활성화 할 수 있습니다. –

답변

0

MISRA 프로필을로드 해 보셨습니까? 랩소디는 적어도 PC-Lint가 MISRA 규칙의 위반을 무시하기 위해 사용하는 문장을 생성합니다.

월터

-1

당신이 작성한 코드는 쉽습니다. 파일이 선택되었는지 확인해야합니다. -esym (#, sym)은 기호 sym에 대해 메시지 #을 표시하지 않습니다. -efunc (#, funcname)는 함수 funcname 내에서 메시지 # emacating을 억제합니다. 경우에 따라 자동 생성 기능에서 PC- be -efunc (960, * :: initStatechart)를 사용하여 프로젝트의 모든 initStatechart 함수에 대한 경고 960을 표시하지 않습니다.

어려운 부분은 혼합 된 코드가 아닙니다. 이미 언급 한 것처럼 -save 및 -restore를 사용해야합니다. 올바른 속성을 찾거나 코드에 명령을 삽입해야합니다.