문제

C 소스를 분석하고 기능적 종속성 트리를 출력하는 Windows에서 실행되는 유틸리티/응용 프로그램을 어디에서 찾을 수 있는지 아는 사람이 있습니까?

내가 찾고있는 것은 다음과 같은 것입니다.

PrintString-> printCharacter-> printByte-> printf

도움이 되었습니까?

해결책

거의 확실하게 과잉이지만 C, C ++, PHP, Java, C#등을 위해이 작업을 수행 할 수 있습니다. 독사 (당신이 가지고 있다면 GraphViz dot 설치). 다음은 샘플 콜 트리가있는 페이지입니다 doxygen/dot에 의해 생성됩니다.

Doxygen은 Windows에서 잘 작동하며 가능합니다 출력 HTML 및 기타 몇 가지 형식.

다른 팁

소스를 읽지 만 깊은 의미로 프로그래밍 언어를 이해하지 못하는 도구는 통화 그래프의 근사치 만 제공 할 수 있습니다. (매크로에서 호출이 발생하면 어떻게해야합니까? 해당 호출이 장애가있는 전처리 서자 안에서 호출이 발생하면 어떻게 될까요? 전화가 간접적이면 어떻게 될까요?) 이것이 충분히 좋으면 실제로 간접 전화가하는 일에 대해 신경 쓰지 않는 경우. 그러면 Doxygen 및 CSCOPE와 같은 도구가 도움이 될 것입니다.

정확한 통화 그래프를 원한다면 Langauge에 대한 전체 지식을 사용하여 도구 구성 요소가 필요합니다. Frama-C (기타 답변 참조) Afaik은 하나이지만 매크로와 간접 전화를 어떻게 처리하는지 모르겠습니다.

무료는 아니지만 DMS 소프트웨어 리엔지니어링 툴킷 및 C 프론트 엔드 전체 C 매크로/사전 프로세서 처리 기능을 갖추고 있으며 파일 시스템의 호출 그래프를 구성합니다. 특히 통화 그래프 구성에 포인트-투-투어 분석이 포함되어있어 간접 기능 호출이 어디로 가는지에 대한 보수적 인 근사치를 제공합니다. 보다 예제 호출 그래프 검은 색 아크 (직접 통화) 및 Blue Arcs (보수적으로 분석) 간접 호출.

많은 도구는 이런 종류의 콜 그라프를 생성합니다. Doxygen은 결과에 대한 가장 많은 프리젠 테이션 옵션을 가질 수 있으며, 핵심에서 "문맹 프로그래밍"도구입니다. 오픈 소스 도구 http://frama-c.cea.fr/ 콜 그라프 (도트 형식)를 생성하고 "서비스"로 기능을 자동으로 그룹화하려고합니다. http://img23.yfrog.com/img23/8180/9il.png

CodeInsight는 CTAGS/CSCOPE 기능이 롤링 된 상업용 편집기입니다. 콜 트리 그래프 (및 거의 모든 다른 관계)를 표시 할 수도 있습니다.

Source Navigator는 다시 개발중인 것으로 보입니다 (Sourcenav NG의 최신 릴리스는 올해 2 월에있었습니다). 소스 네비게이터는 콜 트리, 클래스 종속성 등을 줄 수 있습니다. 최근 버전을 시도하지 않았습니다. Windows 또는 X11에서 작동합니다.

http://sourcenav.berlios.de/

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