了解gdb输出

时间:2012-06-26 00:41:20

标签: c++ linux gdb

我试图在c ++中使用push_back函数作为向量。 我得到一个seg错误,当我运行gdb找到确切的原因。

我得到以下内容。

$1={px = 0xbfffe9c4, pn = { pi_ = 0x8049c0b}}

我对gdb没有多少经验,也无法在线找到与此特定问题相关的任何内容。

1 个答案:

答案 0 :(得分:2)

我的魔球告诉我你在解除引用shared_ptr时崩溃了。关注px成员,因为这是您感兴趣的实际指针值。例如,您可以尝试:

print $1.px

如果指针指向有效的存储区:

print *$1.px

gdb调试器会为您提供大量信息,但有一些更有用的信息:backtraceupdowninfo locals ,如果你是多线程的,thread apply all backtrace。如果您正在进行实时调试,那么您当然需要breakpointnextstepcontinue。您应该可以使用gdb的帮助获取更多信息,gdb manual可以在线获取。