12次发布
0.1.7 | 2022年12月27日 |
---|---|
0.1.6 | 2020年10月22日 |
0.1.5 | 2020年4月16日 |
0.1.4 | 2018年3月7日 |
0.0.4 | 2015年4月22日 |
#717 in 过程宏
10,930每月下载量
在 3 crate 中使用
32KB
566 代码行
trace
一个用于跟踪函数执行过程的过程宏。
将 #[trace]
添加到函数、模块或实现的最上方,将插入 impl
中的 println!
语句,在受影响的函数的开始和结束时通知您函数的进入和退出,并打印参数和返回值。这对于快速调试是否调用了应该调用的函数非常有用,无需手动插入打印语句。
请参阅 examples
目录和 文档 以了解如何使用和配置此库的更多详细信息。
安装
在您的 Cargo.toml
文件中将其添加为依赖项
[dependencies]
trace = "*"
示例
use trace::trace;
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 {
println!("I'm in bar!");
if a == 1 {
2
} else {
b
}
}
输出
[+] Entering foo(a = 1, b = 2)
I'm in foo!
[ENTER] Entering bar(a = 1, b = 2)
I'm in bar!
[EXIT] Exiting bar = 2
[-] Exiting foo = ()
依赖项
~1.5MB
~35K SLoC