【问题标题】:How to exclude a function from a call graph in Doxygen?如何从 Doxygen 的调用图中排除函数?
【发布时间】:2010-06-19 18:30:39
【问题描述】:

我有调试函数,几乎可以在大型程序的每个函数中调用。它们由定义的宏变量有条件地打开。我不希望这些出现在调用图中,因为我可以相当确定每个函数都有它们。有没有办法从图中排除函数

/*! 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(s) 不需要。我认为这与这里已经存在的不同,因为我需要记录 debug_arg 但只是没有出现在调用图中。

【问题讨论】:

    标签: c documentation doxygen


    【解决方案1】:

    您如何有条件地禁用 debug_arg()?如果 debug_arg() 是这样定义的宏:

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

    那么只要你不在代码中或在 Doxygen 配置中指定 INCLUDE_DEBUG,那么就不会有对文档的函数调用。

    最好在命令行而不是在代码中指定 INCLUDE_DEBUG,这样您就不必更改代码来构建文档。

    【讨论】:

    • 这适用于调试代码,这就是它们的定义方式。还有一些特殊的辅助函数可以执行特殊的功能,例如分配内存的特殊处理,我无法关闭它们,但在调用图中我也不需要。如果有一种方法可以将它指定为函数文档,例如 \ExcludeFromCallGraph,它不会出现在调用图中。
    猜你喜欢
    • 2017-02-06
    • 2012-12-15
    • 2011-08-03
    • 1970-01-01
    • 2010-12-09
    • 2015-08-16
    • 2012-02-11
    • 1970-01-01
    • 2016-08-27
    相关资源
    最近更新 更多