IT이야기

doxygen에서 c 함수의 콜 및 발신자 그래프를 생성하는 방법

cyworld 2022. 6. 15. 20:57
반응형

doxygen에서 c 함수의 콜 및 발신자 그래프를 생성하는 방법

문서를 검토하고 doxy 설정 파일을 처음부터 끝까지 검토했습니다.컨피규레이션파일의 doxygen을 잘라내면 구조체 및 cpp 클래스의 문서와 인덱스가 작성되지만 소스 트리의 다수의 c 함수에 대한 콜 또는 발신자 그래프는 표시되지 않습니다.

이러한 콜트리와 발신자 트리를 생성하기 위한 doxygen 설정 방법을 가르쳐 주실 수 있습니까?Graphviz가 설치되어 있습니다.

설정하셔야 합니다.HAVE_DOT,CALL_GRAPH그리고.CALLER_GRAPH로.YES또, 에의 패스를 확인해 주세요.dot에 있습니다.PATH변수.

그래도 작동하지 않으면 다음 설정을 해야 할 수도 있습니다.EXTRACT_ALL및/또는EXTRACT_STATIC기능에 따라 달라집니다.

MacOS 사용자의 경우:

Doxygen 및 Graphviz를 다음과 같이 설치합니다.

brew install doxygen
brew install graphviz

프로젝트 폴더로 이동하여 터미널 세트에서 이 경로로 실행

doxygen -g

다음과 같은 이름의 Doxygen 파일이 생성됩니다.Doxyfile임의의 에디터에서 이 파일을 열고 다음 파라미터를 찾아 해당 위치에서 값을 YES로 바꿉니다.

HAVE_DOT               = YES
EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = YES
EXTRACT_STATIC         = YES
CALL_GRAPH             = YES
CALLER_GRAPH           = YES
DISABLE_INDEX          = YES 
GENERATE_TREEVIEW      = YES
RECURSIVE              = YES

이 Doxy 파일에서 프로젝트 이름을 설정할 수도 있습니다.파일을 저장한 후 단말기에서 다음 명령을 실행합니다.

doxygen Doxyfile

이렇게 하면 다음과 같은 이름의 폴더가 2개 더 생성됩니다.html그리고.latex으로 이동합니다.html폴더 및 열기annotated.html프로젝트의 모든 세부 정보를 볼 수 있습니다.html에 포함된 콜그래프의 png 이미지(일부 함수/클래스 등)도 표시됩니다.

GUI의 "Expert" 탭 컨트롤을 통해 경로를 "dot"(/usr/local/bin/)로 설정하면 문제가 없습니다.

doxywizard도 유용합니다.GUI의 모든 옵션을 제공합니다.옵션을 선택하면 해당 옵션에 대한 빠른 도움말이 표시됩니다.

또, 다음과 같은 것에 흥미를 가질지도 모릅니다.COLLABORATION_GRAPH또는GRAPHICAL_HIERARCHY.

꽤 편리하네요.

C global 함수에서도 같은 문제가 있었습니다.CLANG_ASSED_PARSING을 활성화하면 일부 함수의 콜그래프가 표시되지만 모든 함수의 콜그래프는 표시되지 않습니다.

언급URL : https://stackoverflow.com/questions/8887810/how-to-get-doxygen-to-produce-call-caller-graphs-for-c-functions

반응형