按作用域获取变量

Getting variables by scope

本文关键字:变量 获取 作用域      更新时间:2023-10-16

是否有可能在c++中找到某个范围内所有变量的地址?我指的是扫描程序使用的内存,或者查看编译器的解析树等方法。甚至可能在c++ 11中为它添加了一个机制。

这是我一直在想的事情,一些好的答案将是感激的。

谢谢。

注意:代码应该从程序内部调用

这是所有调试器都可以做的事情,所以我认为如果一个程序用调试信息编译并且可以以某种方式解析它自己的符号表,那么它就有可能获得这种级别的自省。

这个项目实现了调试信息解析来生成c++的类自省。我想同样的方法也可以达到你的目的。

同样,我怀疑这将是可能的,如果你用优化编译,因为优化器可能会改变你的代码,从源代码中的单个变量到内存位置的映射不存在。