2010-06-19 4 views
2

큰 프로그램의 거의 모든 기능에서 호출되는 디버깅 기능이 있습니다. 조건부로 정의 된 매크로 변수에 의해 설정됩니다. 콜 그래프에 이러한 함수가 표시되는 것을 원하지 않습니다. 모든 함수에 해당 함수가 있음을 알 수 있기 때문입니다. 그래프 예를 들어Doxygen의 콜 그래프에서 함수를 제외하는 방법은 무엇입니까?

/*! Step 3: 
* @callgraph 
*/ 
void step3(double * phi, //... 
{ // CODE: 
/// inner_quadratic_form: 
/// \f$ s = (\phi_j^{\mathrm{(old)}})^T \Sigma_{\alpha\alpha} \phi_j^{\mathrm{(old)}}+1 \f$ 
double s = 1.0;debug_arg(s); 
inner_quadratic_form(&s, old_phi_row, &one, ka, Saa, ka, dl, dp); 
s+=1.0;debug_arg(s); 
} 

에서 기능을 제외하는 방법이 있나요의 inner_quadratic 형태는 호출 그래프에 있어야하지만 debug_arg (들)을하지 않습니다. 이것이 debug_arg가 문서화되었지만 콜 그래프에는 나타나지 않기 때문에 이미 여기에있는 것과는 다르다고 생각합니다.

답변

1

어떻게하면 debug_arg()를 조건부로 비활성화 하시겠습니까? debug_arg()는 이렇게 정의 된 매크로 경우 : 그래서 당신이 코드 또는 Doxygen을 구성에 INCLUDE_DEBUG을 지정하지 않는 한 다음

#if defined INCLUDE_DEBUG 
#define debug_arg(s) debug_arg_function(s) 
#else 
#define debug_arg(s) 
#endif 

은 다음 기록 할 함수 호출이되지 않습니다.

문서를 작성하기 위해 코드를 변경할 필요가 없도록 INCLUDE_DEBUG를 코드가 아닌 명령 줄에 지정하는 것이 가장 좋습니다.

+1

이것은 디버깅 코드에서 작동하며 정의 방법입니다. 또한 메모리를 할당하는 특별한 처리와 같은 특수한 기능을 수행하는 특수한 도우미 함수가 몇 개 있는데, 그 함수는 끌 수는 없지만 콜 그래프에는 실제로 필요하지 않습니다. \ ExcludeFromCallGraph와 같은 함수 문서를 호출 그래프에 표시하지 않도록 지정하는 방법이 있으면 좋을 것입니다. –

관련 문제