Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在 gdb 中调试我的程序(事后)的核心转储。我打开它:gdb [program_name] [core_name]
但是,当我尝试检查 STL 向量时,例如 print vec->size() 或 print vec->at(0)
我得到错误
“如果没有调试过程,您将无法做到这一点”
我只是想检查这些容器的内容和大小。有没有办法将虚拟进程附加到核心转储 gdb 检查,以便我可以做到这一点?
打印向量:
(gdb) print *vec
然后熟悉实现向量的内部结构并打印原始缓冲区。通常称为“_M_buffer”或类似的名称。根据您的完成方式,缓冲区可能位于其中的内部对象。