【发布时间】:2018-02-11 04:20:49
【问题描述】:
背景信息:我有一个函数可以直接或通过其他函数间接调用自身,并且希望在程序用完调用堆栈时以一种廉价的方式优雅地失败。我可以手动计算调用次数,但我想要一种更优雅、更强大的方法来实现这一点。
是否可以使用稳定的 Rust 确定当前调用堆栈深度?
我能找到的唯一选择是:
- 在 ASM 中遵循堆栈,但它需要不稳定且不可移植。
- 使用 GNU libc 扩展(回溯)。但是,回溯太浪费了,也不标准。
【问题讨论】:
背景信息:我有一个函数可以直接或通过其他函数间接调用自身,并且希望在程序用完调用堆栈时以一种廉价的方式优雅地失败。我可以手动计算调用次数,但我想要一种更优雅、更强大的方法来实现这一点。
是否可以使用稳定的 Rust 确定当前调用堆栈深度?
我能找到的唯一选择是:
【问题讨论】:
stacker crate 似乎提供了您想要的功能:
该库支持 Linux、Windows 和 macOS 目标。
【讨论】: