c++ - GDB C++ - 在查看核心转储时检查 STL 容器?

标签 c++ stl gdb coredump

我正在 gdb 中调试程序的核心转储(事后分析)。我打开它: gdb [程序名] [核心名]

但是,当我尝试检查 STL vector 时,例如 打印 vec->size() 要么 打印 vec->at(0)

我得到了错误

"You can't do that without a process to debug"

我只是想检查一下这些容器的内容和大小。有什么方法可以将虚拟进程附加到核心转储 gdb 检查以便我可以这样做吗?

最佳答案

打印 vector :

(gdb) print *vec

然后熟悉实现 vector 的内部结构并打印原始缓冲区。通常称为“_M_buffer”或类似名称。根据您的操作方式,缓冲区可能包含一个内部对象。

关于c++ - GDB C++ - 在查看核心转储时检查 STL 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399973/

相关文章:

窗口内的C++输入框

c++ - 为 ardor boost "too old"并且不会安装

c++ - 为什么 std::list 的相等比较不能通过编译而 T 是 EqualityComparable

android - 针对 android 工具链上的 C++ 标准库进行编译

c++ - 如何强制库使用自定义 std::allocator?

c++ 程序在一个线程发生访问冲突时终止 - 如何在 linux 中捕获此问题 - 对于 win32 我在 vs2010 中获得堆栈跟踪

android - 如何模拟 ARM 处理器运行时环境并加载 Linux 内核模块?

linux - 在 gdb 中设置应用亲和性

c++ - 当我在 borland c++ 中编译程序时,出现 "Unable to open include file ' owl/owlpch.h'"错误

c++ - C++ 调用图的简单工具