找到指向gdb中地址的所有变量

时间:2013-10-30 11:48:40

标签: c++ debugging crash gdb core

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

2 个答案:

答案 0 :(得分:3)

  

我可以得到载体的地址......我想找出什么   变量指向此向量

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

(gdb) info symbol 0x4005BDC

请参阅gdb文档中的Examining the Symbol Table

答案 1 :(得分:0)

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

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

例如:

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