템플릿/클래스 메서드와 그 사용법을 시각화하는 도구가 있습니까?
-
09-06-2019 - |
문제
나는 대규모 코드 기반을 인수했으며 특정 클래스와 해당 메서드가 사용되는 방법과 위치에 대한 개요를 얻고 싶습니다.
어떻게든 종속성을 시각화하고 멋진 호출 트리나 이와 유사한 것을 그릴 수 있는 좋은 도구가 있습니까?
선택 범위를 좁히는 데 도움이 되는 경우 코드는 Visual Studio의 C++로 되어 있습니다.
다른 팁
Doxygen을 사용했을 때 발신자와 수신자의 전체 목록이 생성되었습니다.내 생각엔 당신이 그것을 켜야 할 것 같아요.
데이빗, 제안해 주셔서 감사합니다.나는 주말 동안 프로그램을 시험해 보았습니다.
Doxygen은 3가지 중 가장 포괄적인 것으로 보이지만 메서드 호출자에 관해서는 여전히 몇 가지 아쉬운 점이 남아 있습니다.
세 가지 모두 C++ 템플릿에 다양한 수준의 문제가 있는 것 같습니다.CC-Rider는 단순히 분석 도중에 충돌이 발생했으며 CodeDrawer에는 많은 관계가 표시되지 않습니다.Doxygen은 꽤 잘 작동했지만 모든 관계를 찾아 표시하지 못했고 대신 필터링할 때까지 많은 매크로 참조로 나를 압도했습니다.
따라서 최종적인 다른 제안을 위해 "대형 코드베이스"를 약간 명확히 해야 할 수도 있습니다.전체적으로 100,000개 이상의 코드 라인이 100개가 넘는 템플릿 파일과 이를 모두 하나로 묶는 여러 개의 실제 클래스 파일에 분산되어 있습니다.
작업에 적합하고 더 나은(더 철저하게) 수행할 수 있는 다른 도구가 있습니까?아, 그리고 구체적으로:IDL과 COM 인터페이스를 이해하는 것이 있나요?
Doxygen을 사용했을 때 발신자와 수신자의 전체 목록이 생성되었습니다.내 생각엔 당신이 그것을 켜야 할 것 같아요.
물론 그렇게 했지만 앞서 언급한 것처럼 doxygen은 IDL에 정의된 개체 간의 인터페이스를 고려하지 않습니다.직접 C++ 호출만 "만" 표시합니다.
오해하지 마세요. 이 기능은 이미 놀랍습니다. 하지만 모든 것이 어떻게 조화를 이루는지 잘 이해하려는 높은 수준의 관점에서는 아직 완전하지 않습니다.
Java에서는 JDepend로 시작하겠습니다..NET에서는 NDepend를 사용합니다.C++에 대해 모릅니다.