템플릿/클래스 메서드와 그 사용법을 시각화하는 도구가 있습니까?

StackOverflow https://stackoverflow.com/questions/35745

  •  09-06-2019
  •  | 
  •  

문제

나는 대규모 코드 기반을 인수했으며 특정 클래스와 해당 메서드가 사용되는 방법과 위치에 대한 개요를 얻고 싶습니다.

어떻게든 종속성을 시각화하고 멋진 호출 트리나 이와 유사한 것을 그릴 수 있는 좋은 도구가 있습니까?

선택 범위를 좁히는 데 도움이 되는 경우 코드는 Visual Studio의 C++로 되어 있습니다.

도움이 되었습니까?

해결책

다음은 몇 가지 옵션입니다.

마지막 doxygen은 자동 문서화 도구에 가깝지만 종속성 그래프와 상속 다이어그램을 생성할 수 있습니다.또한 무료가 아닌 처음 두 가지와는 달리 GPL에 따라 라이센스가 부여됩니다.

다른 팁

Doxygen을 사용했을 때 발신자와 수신자의 전체 목록이 생성되었습니다.내 생각엔 당신이 그것을 켜야 할 것 같아요.

데이빗, 제안해 주셔서 감사합니다.나는 주말 동안 프로그램을 시험해 보았습니다.

Doxygen은 3가지 중 가장 포괄적인 것으로 보이지만 메서드 호출자에 관해서는 여전히 몇 가지 아쉬운 점이 남아 있습니다.

세 가지 모두 C++ 템플릿에 다양한 수준의 문제가 있는 것 같습니다.CC-Rider는 단순히 분석 도중에 충돌이 발생했으며 CodeDrawer에는 많은 관계가 표시되지 않습니다.Doxygen은 꽤 잘 작동했지만 모든 관계를 찾아 표시하지 못했고 대신 필터링할 때까지 많은 매크로 참조로 나를 압도했습니다.

따라서 최종적인 다른 제안을 위해 "대형 코드베이스"를 약간 명확히 해야 할 수도 있습니다.전체적으로 100,000개 이상의 코드 라인이 100개가 넘는 템플릿 파일과 이를 모두 하나로 묶는 여러 개의 실제 클래스 파일에 분산되어 있습니다.

작업에 적합하고 더 나은(더 철저하게) 수행할 수 있는 다른 도구가 있습니까?아, 그리고 구체적으로:IDL과 COM 인터페이스를 이해하는 것이 있나요?

Doxygen을 사용했을 때 발신자와 수신자의 전체 목록이 생성되었습니다.내 생각엔 당신이 그것을 켜야 할 것 같아요.

물론 그렇게 했지만 앞서 언급한 것처럼 doxygen은 IDL에 정의된 개체 간의 인터페이스를 고려하지 않습니다.직접 C++ 호출만 "만" 표시합니다.

오해하지 마세요. 이 기능은 이미 놀랍습니다. 하지만 모든 것이 어떻게 조화를 이루는지 잘 이해하려는 높은 수준의 관점에서는 아직 완전하지 않습니다.

Java에서는 JDepend로 시작하겠습니다..NET에서는 NDepend를 사용합니다.C++에 대해 모릅니다.

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