1

对于上下文,我的特殊情况如下:我遇到了段错误并正在分析核心;堆栈跟踪显示了名为 exit 的程序,但在完成之前崩溃了,在某个向量的 d'tor 中;可以得到向量的地址,但是对代码不熟悉,不知道对应的是什么变量;我想找出哪些变量指向这个向量来检查相关代码。有什么建议么?

4

2 回答 2

3

我可以得到向量的地址...我想找出指向这个向量的变量

有了某个变量的地址,您可以使用info symbol命令打印变量的名称,如下所示:

(gdb) info symbol 0x4005BDC

请参阅gdb 文档中的检查符号表

于 2013-10-30T13:46:03.880 回答
1

您可以在崩溃前设置断点并打印 std::vector 中的所有变量。

print *(your_vector._M_impl._M_start)@your_vector.size()

例如:

std::vector<int> vec(3);你一起写print *(vec._M_impl._M_start)@3

于 2013-10-30T12:26:27.750 回答