2012-06-10 3 views
1

저에게 작성되지 않은 대규모 Java 코드베이스에서 실행 흐름을 찾으려고합니다. 그 (JSonde, JTrace, Java Call Tracert, JavacallTracer)를 가능하게하는 도구를 찾았지만 문제는 모두 단일 java/jar/class 파일과 함께 사용해야한다는 것입니다. 내가 이해하려고하는 코드는 Ant로 작성되었으며 수백 개의 항아리가 있습니다. 따라서 쉘 스크립트를 사용하여 실행됩니다. 이러한 코드를 사용하여 이러한 도구를 사용하는 방법을 모르겠습니다.거대한 java 코드베이스에서 실행 흐름을 찾고 있습니다

정말 고맙습니다.

+4

큰 코드베이스에는 수십억 개의 서로 다른 경로가있을 수 있습니다. 그런 도구에서 무엇을 배우기를 희망합니까? 코드를 이해하기위한 마법의 총알은 없습니다. 읽고 Eclipse에서 필요로하는 IDE 디버거에서 추적해야합니다. –

+0

"실행 흐름"은 거의 불가능합니다. 당신이 성취하고자하는 실제 과제는 무엇입니까? Eclipse에는 필요한 도구가 대부분 들어 있습니다. 그래픽으로 표현해야합니까? 그렇다면 정확하게 시각화해야하는 것은 무엇입니까? – Christian

+0

당신은 (Mark O'Conner에게 대답하는) "내가하고 싶은 것은 코드에 약간의 변경을 가하는 것"이라고 말합니다. 어떤 조건에서? 어떻게하면 모든 사람들이 코드를 변경하고 싶고, 왜 당신의 특별한 필요가 있는가? 수동? 자동? 그리고 그게 가능하게 만드는 "제어 흐름"에서 구체적으로 원하는 것은 무엇입니까? (시퀀스 다이어그램을 제안합니다. 당신이 정말로 원하는 것입니까? 당신이 원하는 유일한 것입니까?) –

답변

-1

코드 커버리지 도구를 고려해야한다고 생각합니다. 그러면 코드의 어떤 부분이 실행되고 어떤 부분이 실행되지 않는지를보고합니다. 고려해야 할 몇 가지 도구가 있습니다. Jacoco은 새로 떠오르는 애호가이며 Emma Eclipse 플러그인과 연결됩니다.

코드 커버리지에 대해 기억해야 할 것은 무엇인가에 의해 구동되어야한다는 것입니다. 일반적으로 이것은 코드 테스트 (단위 또는 통합)를 실행하여 수행됩니다.

마지막으로 코드 범위를 사용하는 방법에 익숙해지면 Sonar에 결과를 업로드하고 보관하는 것이 좋습니다.

+0

-1 이것은 제어 흐름 정보를 생성하지 않습니다. –

+0

내가 원하는 것은 코드를 약간 변경하는 것입니다. 이미 코드를 여러 번 읽었지만 충분하지 않았습니다. 코드는 Eclipse로 가져올 수 있지만 Eclipse 내에서는 실행할 수 없습니다 (원래 명령 행으로 작성되었습니다). 코드에서 UML 클래스 다이어그램을 생성했습니다. 시퀀스 다이어그램은 흐름을 이해하는 데 더 유용합니다. – user1052958

+0

나는 당신이 원하는 것을 할 수 있다고 생각하지 않는다. 코드를 추적 할 수있는 도구 (예 : Java의 계측 API 사용)를 사용하더라도 코드를 실행하는 데 필요한 것이 있습니다. 가장 확실한 메커니즘은 자동화 된 테스트 스위트입니다. 짐 개리슨 (Jim Garrison)은 코드 작성을 통해 가능한 실행 경로가 많이 있음을 지적했습니다. (어떤 프로그램이 실행되는지에 따라 달라집니다). 마지막으로 실제로 코드 커버리지보고는 실행 분석의보다 표준적인 형태입니다. –

0

나는 이것이 낡은 질문이라는 것을 알고 있지만, 이제는 해결책을 찾았습니다. 누군가 다른 사람이 같은 것을 검색한다면 나는 여기에 넣었습니다 : http://findtheflow.io/#gettingstarted.

관련 문제