如何获取特定构造函数的调用者?

时间:2017-01-17 09:26:28

标签: c++ constructor

我知道用宏包装可以用来获取函数的调用者。但就建筑师而言,据我所知,这是不可能的。我没有使用gcc所以backtrace()函数对我来说不是一个选项。

编辑: 我正在使用msvc。

1 个答案:

答案 0 :(得分:0)

理想的工具是调试器,它不要求您对程序进行任何修改。

但是,如果你真的想在程序中本地调用调用程序,那也是可能的 - 但是在没有使用特定于平台或包装程序库的情况下不能在标准C ++中使用(除非通过修改构造函数和使用宏技巧)。

  

我没有使用gcc所以backtrace()函数对我来说不是一个选项。

然后你需要找出你使用的编译器,并使用它们为堆栈展开提供的任何替代方法。

您可以使用一个可移植的库libunwind,它无法访问回溯。但它似乎并没有被移植到窗口。

  

我知道用宏包装可以用来获取函数的调用者

包装初始化应该以类似的方式工作。