문제

C ++ 프로젝트에 VS2008을 사용하고 있습니다. 코드는 꽤 오래되었고 많은 손을 통과했습니다. 더 이상 사용되지 않는 몇 가지 클래스 계층, 기능, 열거 등이 있습니다.

컴파일러/링커가 선언되거나 정의되었지만 어디에서나 참조되지 않은 식별자를 나열 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

PC-Lint "전체 프로젝트"분석 (여러 파일을 함께 분석)이이를 수행 할 수 있습니다. 설정에 도움이 필요한 경우 저에게 연락하십시오.

다른 팁

vs는 함수 내에서 선언 된 식별자에 대해 경고하고 사용되지 않으면 경고 레벨 4로 이동해야 할 수도 있지만 전역 변수 및 기타 많은 잠재적 문제에 대한 사냥이 필요할 수 있습니다. 보풀 또는 비주얼 보풀

Visual C ++에 대해서는 확실하지 않지만 G ++는 사용하지 않은 변수에 대해 경고합니다. G ++를 통해 코드를 전달하려고 할 수 있습니다.

PC 린트 이것을 할 것입니다. 그러나 모든 것을 실행하지 마십시오. 나는 120 만 오류를 가졌다. 거의 모든 UI 클래스 참조 Resource.h 및 Resource.h가 "Const int로 정의 된 대체"라고 말하는 많은 #defines를 나열하기 때문에 이것은 크게 강화되었습니다. 좋은 시작점을 읽으려면 읽습니다 2 블로그의 힘에 대한이 게시물.

가장 명백한 미사용 선언의 경우, 높은 경쟁이 그 문제를 처리 할 것입니다.

사용하지 않은 코드의 식별과 관련하여 Deadstripper (심야 범죄 드라마의 중심이 아니라 링크 중에 사용되지 않은 코드를 컬링하는 메커니즘)는 당신이 실제로 원하는 것은 코드 커버리지입니다. 분석 도구. 불행히도 모든 것이 많이 존재합니다.

좋은 컨텍스트 태그 및 콜 그래핑 메커니즘을 갖춘 강력한 편집자도 도움이됩니다.

Graham의 게시물과 관련하여 : FWIW는 실제로 "const int로 정의 된"메시지를 Resource.h 파일로 본 적이 없습니다.

어쨌든, 특정 PC 린트 메시지가 원하는 것을 발견하는 데 방해가되는 경우 옵션.lnt 파일에서 -e를 사용하여 끄는 것이 간단한 문제입니다. 또한 -W 옵션을 알고 있어야합니다.이 옵션은 경고 수준을 전 세계적으로 설정할 수 있습니다 (예 : -W0 +E766은 메시지 766을 제외한 모든 것을 끕니다).

사용하지 않은 기호 및 선언의 경우 755 (정보 - 글로벌 매크로 참조), 758 (정보 - 글로벌 열거되지 않음), 769 (정보 - 글로벌 열거 상수 참조)와 같은 메시지를 찾아 보시기 바랍니다. 및 1714 (정보 - 회원 기능 참조되지 않음). 이것들은 단일 파일 분석에서 억제되므로 전체 프로젝트 분석을 실행하여이를 확인해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top