按作用域获取变量
Getting variables by scope
是否有可能在c++中找到某个范围内所有变量的地址?我指的是扫描程序使用的内存,或者查看编译器的解析树等方法。甚至可能在c++ 11中为它添加了一个机制。
这是我一直在想的事情,一些好的答案将是感激的。
谢谢。
注意:代码应该从程序内部调用
这是所有调试器都可以做的事情,所以我认为如果一个程序用调试信息编译并且可以以某种方式解析它自己的符号表,那么它就有可能获得这种级别的自省。
这个项目实现了调试信息解析来生成c++的类自省。我想同样的方法也可以达到你的目的。
同样,我怀疑这将是可能的,如果你用优化编译,因为优化器可能会改变你的代码,从源代码中的单个变量到内存位置的映射不存在。
相关文章:
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 使用递归时获取变量的奇怪值
- 从 C 中的变量获取文件的路径,C++
- 我可以从其变量中获取对类对象的引用吗?
- 为什么在分配给成员变量之前获取unique_ptr的返回是一个问题?
- std::cin 从控制台获取两种不同的变量类型,'storing'以后使用第二种类型?
- 如何使用可变参数模板获取参数的变量号及其大小C++
- 获取具有静态局部变量的绑定/推断捕获 lambda 的函数指针
- constexpr 函数在编译时获取值,即使我的变量不是 constexpr
- 如何在不为其声明变量的情况下获取和使用常量值的地址?
- 附加调试器并以编程方式获取变量地址 Visual Studio
- 是否可以将变体的索引作为 constexpr 变量获取?
- 为什么我无法获取 MSVS2019 / C++ 中字符或uint8_t变量的内存地址?
- 我正在尝试获取类私有成员中变量的输入
- C++/Win32 构造函数不使用从对话框获取的字符串初始化变量
- 使用基地址和偏移量获取变量的地址
- C++11 - 获取编译时的所有类变量,并在没有 Boost 的情况下为它们调用方法
- 使用 WindowSetup 类变量获取错误
- fstream 变量获取文本文件中的所有行
- 从类型而不是从变量获取指针级别