sak*_*sak 5 rust rust-proc-macros
我正在实现一个 proc 宏,并在另一个板条箱中进行测试。当我编译客户端包时,proc 宏的调用站点抛出错误:
error: proc macro panicked
--> foo/src/main.rs:17:1
Run Code Online (Sandbox Code Playgroud)
该错误发生在 proc 宏实现中。
这个错误不是很有帮助,因为它没有指出具体失败的地方。可以使用唯一的错误消息来找出它,但是作为跟踪的一部分,在 proc 宏实现中获得错误起源的确切文件和行号会简单得多。
有什么办法可以实现这一点吗?
有一个夜间 rustc 标志 ,-Zproc-macro-backtrace当 proc 宏发生恐慌时,它会打印回溯。
请注意,这是一个 rustc 标志,而不是 Cargo 标志,因此您需要像这样调用它:
cargo +nightly rustc -- -Zproc-macro-backtrace
Run Code Online (Sandbox Code Playgroud)
您还可以使用RUSTFLAGS:
RUSTFLAGS="-Zproc-macro-backtrace" cargo check
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2109 次 |
| 最近记录: |