我正在 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/