2012-07-19 5 views
4

Eclipse CDT 용 플러그인을 개발 중이며 함수의 호출 계층 구조를 생성하려고합니다.Eclipse CDT에서 호출 계층 구하기

모든 파일의 구문 트리를 직접 트래버스하지 않고도 가능합니까?

답변

3
CallHierarchy hierarchy = new CallHierarchy(); 
IJavaSearchScope searchScope = SearchEngine.createWorkspaceScope(); 
hierarchy.setSearchScope(searchScope); 
ArrayList<MethodCall> methodCalls = new ArrayList<MethodCall>(); 

MethodWrapper[] callerWrapper = hierarchy.getCallerRoots(methods); 
ArrayList<MethodWrapper> callsWrapper = new ArrayList<MethodWrapper>(); 
for (int i = 0; i < callerWrapper.length; i++) { 
    callsWrapper.addAll(Arrays.asList(callerWrapper[i] 
      .getCalls(new NullProgressMonitor()))); 
} 

for (int i = 0; i < callsWrapper.size(); i++) 
    methodCalls.add(callsWrapper.get(i).getMethodCall()); 
// Now you will get method calls in methodCalls list. 
IMember member = methodCalls.get(0).getMember();// you will get one of 
               // caller method in 
               // member by this method 
+0

그것은 Eclipse JDT의 솔루션입니다. C 프로젝트의 플러그인에서 작업 중이므로 Eclipse CDT에서 수행해야합니다. Eclipse CDT에서 이와 동등한 "CallHierarchy"클래스를 찾을 수 없습니다. – cipher