ProgramingTip

코드 흐름을하는 도구 (C / C ++)

bestdevel 2020. 11. 2. 08:10
반응형

코드 흐름을하는 도구 (C / C ++)


C / C ++ 코드를 이해하는 쉽게 할 수있는 도구가 작업을입니까? 우리는 다른 사람들이 많은 소프트웨어를 물려하고있다. 이 작업을 단순화 할 수있는 도구에 대한 조언이 있습니까?


SourceInsightUnderstand for C ++ 는 순서도를 포함하여 c / c ++ 코드 분석을 위해 얻을 수있는 최고의 도구입니다.


약력 링 소프트웨어는 호출 된 함수에 대한 아이디어를 제공합니다.

Linux를 사용할 수있는 권한 KCachegrind를 사용합니다 .


개인적으로 저는 디버거를 사용합니다. 코드를 훑어보고 그것이 무엇을하는지, 어디로가는 것이 유일한 방법인지 확인하십시오.

그러나 (때때로) 도움이되는 문서 생성기를 사용할 수 있습니다. 좋은 예는 doxygen 입니다.


Doxygen 은 EXTRACT_ALL 옵션을 켜면 마크 업을 적용하지 않고 코드에서 다이어그램을 생성하는 데 매우 유용합니다. 당신은 필요로하는 graphviz가 HAVE_DOT 설정으로 생성 된 다이어그램을 선택 설치되어 있어야합니다. 설치하고 DOT_PATH를 비워두면 Windows에서는 잘 작동하지만 OS / X에서는 계속해서 도트 도구 위치를 직접 가리켜 야합니다.

ACM Queue에는 doxygen 및 DTrace 사용에 대해 자세히 설명 하는 훌륭한 코드 가 있습니다.


Linux (KDE)를 사용하는 경우 cscope 유틸리티를 기반으로 구축 된 KScope. 내가 어떤 식 으로든 수정해야하거나 API를 사용하는 익숙하지 않은 코드의 거대한 부분을 조사하기 내가 필요한 것입니다 (그리고 항상 사용하는) 최고의 것입니다. 그 기능 중에는 다양한 방법으로 검색 할 수있는 상호 참조 데이터베이스가 있습니다. 모든 참조, 전역 정의, 함수의 호출자 / 호출자 찾기 등을 사용할 수 있습니다. 내장 IDE와 콜 그래프를 표시하는 기능도 있습니다.


Doxygen 은 graphviz를 사용하는 경우 특별히 준비하지 않은 경우에도 클래스 관계 다이어그램을 제공합니다.


작동하는 이집트 http://www.gson.org/egypt/egypt.html 과 같은 도구가 필요한 코드를 사용할 수있는 데 사용되는 예상 GCC 버전과 정확한 버전의 콜 그래프 생성기와 일치하는에만 가능합니다. codeviz http://www.csn.ul.ie/~mel/projects/codeviz/ 에 모두 마찬가지입니다 .

다른 옵션은 cachegrind 모드에서 사용되는 valgrind입니다 (kcachegrind 프로그램에서 따를 수있는 콜 그래프 유형을 생성합니다.


개인적으로 Visual Studio 디버거 도구를 사용합니다.

작은 상자에 물건을 입고 할 수있는 "발신자 그래프"기능이 함께 제공됩니다. 또한 Call Stack과 일반적인 시계 기능 만 있으면됩니다.


Eclipse 3.4.0에서 작동하지 않는 AspectBrowser 도 있습니다.


AQtime , 호출 된 모든 함수 (및 소요 시간)를 시도해보십시오. 약력 링 도구이며 분석의 시작점과 끝점을 수 있습니다. 30 일 평가판이 있습니다.


얼마 전에 Borland Together를 사용하여 신고 코드에서 모델을 생성하는 데 적절한 작업을 수행했습니다. 코드에서 시퀀스 다이어그램을 생성 할 수도 있다고 생각합니다. 코드가 엉망이면 모델도 마찬가지입니다. 그리고 내가 기억하는 것처럼 보이게하는 것이 특히 그렇습니다.


Rational Quantify는 또한 멋진 호출 그래프를 제공합니다.


그래픽 적으로는 그리 좋지는 않지만 코드의 플로우 차트를 수행하는 Visustin이라는 도구를 수행 보았습니다. http://www.aivosto.com/visustin.html


Doxygen, 사용에 대한 좋은 점은 클래스의 순환 명세서에서 코드가 끔찍하거나 좋다는 것을 알려줍니다. 따라서 코드를 리팩터링해야하지만 마음에 들지 않을 수도 있습니다. :-)


Slickedit는 모르는 큰 코드 블록을 탐색하는 데 적합합니다. 태그 기능을 사용하면 어떤 파일이 처리 할 필요없이 기능적으로 코드를 처리 할 수 ​​있습니다. (EMACS에는 실제로 태그가 사용 Slickedit만큼 훌륭하지만 학습 곡선이 약간 더 가파 사용하지 않습니다)

수없는 메소드 나 클래스 또는 변수에 도달하면 해당 코드로 이동하기 위해 푸시 태그를 다음 다시 팝 태그를 지정합니다. (키 입력에 묶여 있으므로 매우 빠 사용)

찾기 참조를 사용하여 해당 함수 / 변수가 사용되는 위치를 확인할 수도 있습니다.

어떤 파일에 어떤 파일이 있는지 알아 내야하는 시간을 절약 할 수 있습니다.


doxygen 은 관계 그래프도 생성하는 무료 문서 생성 도구 (Javadoc과 유사)입니다.

참고 URL : https://stackoverflow.com/questions/153074/tool-to-visualise-code-flow-cc

반응형