了解 gdb 输出

Understanding gdb output

本文关键字:输出 gdb 了解      更新时间:2023-10-16

我正在尝试将push_back函数用于c ++中的向量。我遇到了一个 seg 错误,当我运行 gdb 以找到确切原因时。

我得到以下内容。

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

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

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

print $1.px

如果指针指向有效的内存区域:

print *$1.px

gdb调试器将为您提供很多信息,但一些更有用的东西:backtraceupdowninfo locals,如果你是多线程的,thread apply all backtrace。如果你是实时调试,那么你当然需要breakpointnextstepcontinue。您应该能够使用 gdb 的帮助以获取更多信息,并且gdb手册可在线获得。