【发布时间】:2012-05-01 15:27:55
【问题描述】:
我正在 gdb 中调试我的程序的核心转储(事后分析)。我打开它: gdb [程序名称] [核心名称]
但是,当我尝试检查 STL 向量时,例如 打印 vec->size() 或者 打印 vec->at(0)
我得到了错误
“如果没有调试过程,您将无法做到这一点”
我只是想检查这些容器的内容和大小。有什么方法可以将虚拟进程附加到核心转储 gdb 检查,以便我可以做到这一点?
【问题讨论】:
-
您使用的是什么版本的 gdb?根据版本,您可以搜索 STL 漂亮的打印机,它们将处理内存并生成容器的人类可读表示。 sourceware.org/gdb/wiki/STLSupport
-
您正在尝试调用事后调试时无法执行的函数。只需检查向量内存即可。