#trace #tracing #execution #proc-macro #procedural #function #func

func_trace

一个用于跟踪函数执行过程的过程宏

4个稳定版本

1.0.3 2021年3月15日
1.0.2 2021年3月13日

#12 in #func

每月下载量
用于 tps_minicbor

MIT 协议

31KB
567 代码行

trace 构建状态 最新版本 文档

一个用于跟踪函数执行过程的过程宏。

#[trace] 添加到函数、模块或实现的开头,将在受影响的函数的开始和结束处插入 println! 语句,通知您该函数何时被进入和退出,并打印参数和返回值。这对于快速调试是否调用了应该调用的函数非常有用,无需手动插入打印语句。

有关如何使用和配置此库的更多详细信息,请参阅 examples 目录和 文档

安装

在您的 Cargo.toml 文件中添加依赖项

[dependencies]
func_trace = "^1.0.3"

示例

use func_trace::trace;

func_trace::init_depth_var!();

fn main() {
    foo(1, 2);
}

#[trace]
fn foo(a: i32, b: i32) {
    println!("I'm in foo!");
    bar((a, b));
}

#[trace(prefix_enter="[ENTER]", prefix_exit="[EXIT]")]
fn bar((a, b): (i32, i32)) -> i32 {
    if a == 1 {
        2
    } else {
        b
    }
}

输出

[+] Entering foo(a = 1, b = 2)
  [ENTER] Entering bar(a = 1, b = 2)
  [EXIT] Exiting bar = 2
[-] Exiting foo = ()

依赖项

~1.5MB
~35K SLoC