GDB C++ - 在查看核心转储时检查 STL 容器
GDB C++ - Inspecting STL Containers when looking at a core dump?
我正在 gdb 中调试我的程序的核心转储(事后分析)。我打开它: GDB [program_name] [core_name]
但是,当我尝试检查 STL 向量时,例如 打印 vec->size()或 打印 VEC->AT(0)
我收到错误
"如果没有调试过程,就无法做到这一点"
我只是想检查这些容器的内容和大小。有没有办法将虚拟进程附加到核心转储 gdb 检查,以便我可以执行此操作?
打印向量:
(gdb) print *vec
然后熟悉实现向量的内部结构并打印原始缓冲区。 通常称为"_M_buffer"或类似的东西。 根据你的完成方式,缓冲区可能有一个内部对象。
相关文章:
- 分段故障(堆芯转储)矢量
- Cppcheck生成xml转储文件
- 如何找出GDB的SIGTRAP核心转储的根本原因
- C++映射分割错误(核心转储)
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 浮点异常(核心转储)#694457
- 分段错误(核心转储)但无法弄清楚
- 链接到libkcapi时没有核心转储
- 检测到堆栈粉碎:已终止 中止(核心已转储)
- 正在处理故障(堆芯转储)
- 分段错误(核心转储) - 使用 SavedModel 的 Tensorflow C++ API 进行推断
- 我不知道为什么这段代码会让核心被转储?
- C++运行时错误与快速排序算法抛出堆栈转储错误
- 在基数排序中,我得到 munmap_chunk():无效指针和中止(核心转储).为什么?
- C++指针无法在函数外部传递值和分段错误(核心转储)错误
- 如何检查导致转储的错误发生在哪一毫秒?
- GDB C++ - 在查看核心转储时检查 STL 容器
- 为什么在检查核心转储时进入 gdb "Cannot access memory at address 0x..."?
- 如何在核心转储中检查堆大小和创建的对象