【发布时间】:2021-10-20 15:38:05
【问题描述】:
假设我们有一组函数调用,它们按照类似于树的顺序执行。即 func0 依次调用 func1 和 func2。 func2 调用 func3,然后 func0 继续下一行执行 func4。
func0 // depth 0
func1 // depth 1
func2 // depth 1
func3 // depth 2
func4 // depth 1
func5 // depth 2
func6 // depth 3
func7 // depth 4
func8 // depth 2
func9 // depth 0
我可以在每个函数中添加哪一行代码来打印这样的深度?
【问题讨论】:
-
我能想到的一种方法是传递每个函数的参数,该参数将指示深度。然后你只需输出相应格式的函数名即可。
-
boost.org/doc/libs/1_77_0/doc/html/stacktrace.html 可能会有所帮助,否则您需要告诉我们您的目标平台是什么,因为没有标准的 c++ api 来询问调用堆栈
-
@AlanBirtles 一个非标准的 c++ sn-p 也很有用。例如,我在考虑是否可以使用一些全局变量。我的主要平台是 linux 但我也可以在 windows 中使用它
标签: c++