GDB打印std ::地图元素
Gdb printing std::map elements
我在一个名为execstate的类中有一个std ::映射数据成员:
class ExecState { // ...
std::map<int,ref<Expr> > ab_size;
// ...
};
当我从GDB打印它时,我会看到预期值:
(gdb) print state.ab_size
$1 = std::map with 1 elements = {[1] = {ptr = 0x2a221d0}}
但是,当我尝试访问元素本身时,GDB失败:
(gdb) print state.ab_size[1]
Attempt to take address of value not located in memory.
我在这里做错了什么?谢谢!
当我从GDB打印它时,我会看到预期值:
您看到了这一点,因为相当分子的魔力。要查看变量的实际内容,请尝试print/r state.ab_size
。
但是,当我尝试访问元素本身时,GDB失败:
GDB并没有失败,但是漂亮的打印机还不够神奇,无法实现您的愿望。您必须使用实际数据元素"钓鱼"该值,而不是漂亮打印机创建的幻觉(这很难)。
相关文章:
- 基于多个条件处理地图中的所有元素
- 以C++访问矢量中的地图元素
- 如何知道地图中的最后一个元素是否被删除?
- C++将所有元素从矢量复制到地图/unordered_map的最佳方法
- 如何计算地图中重复元素/值的数量?
- 如何将元素插入到标准::地图的共享指针中?
- 如何从地图访问数组的元素?
- 地图是否将元素存储为 std::p air?
- 从地图上擦除元素,然后将其放回原处
- 如何打印属于地图的一系列元素(std::p air<size_t,std::string>)(不是所有元素)
- 在无序地图中替换元素
- 尝试访问地图中元素时的错误
- 在地图中搜索结构元素
- GDB打印std ::地图元素
- DFS 访问内部的地图元素.时间复杂度
- 地图元素上的循环范围
- 初始化 1000 个地图元素
- 访问地图元素
- 如果我引用地图元素C++它不会被擦除
- 访问地图元素会增加其分配的内存大小