了解 gdb 输出
Understanding gdb output
我正在尝试将push_back函数用于c ++中的向量。我遇到了一个 seg 错误,当我运行 gdb 以找到确切原因时。
我得到以下内容。
$1={px = 0xbfffe9c4, pn = { pi_ = 0x8049c0b}}
我对 gdb 没有太多经验,也无法在网上找到与此特定问题相关的任何内容。
我的魔球告诉我你在取消引用shared_ptr
时崩溃了。跟随px
成员,因为这是您感兴趣的实际指针值。例如,您可以尝试:
print $1.px
如果指针指向有效的内存区域:
print *$1.px
gdb
调试器将为您提供很多信息,但一些更有用的东西:backtrace
、up
、down
、info locals
,如果你是多线程的,thread apply all backtrace
。如果你是实时调试,那么你当然需要breakpoint
、next
、step
和continue
。您应该能够使用 gdb
的帮助以获取更多信息,并且gdb
手册可在线获得。
相关文章:
- 如何防止 CUDA-GDB 中的<优化输出>值
- gdb 中的列表命令不输出我编写的代码
- 有没有办法完全禁用gdb输出
- 如何使 gdb 仅输出到文件
- GDB 输出启动线程,但给出输出
- GDB / C++ - 根据循环条件将多个变量记录到输出文件中
- GDB Cygwin 不会将输出重定向到文件
- 在SEGFAULT的情况下,了解GDB输出
- 如何在GDB/MI中获取-Interpreter语言 - Exec的输出
- gdb:如何将共享库的日志文件重定向到 gdb 输出
- 可视化GDB在MSVC2012和GCC 7.3.1之间打印不同的C++输出
- 与实际内存内容相比,GDB 内存检查输出偏差 8 个字节
- 了解 gdb 输出
- 如何在 gdb 中执行步骤并同时显示该行的输出
- 当传入具有std::string成员的结构时,C++-gdb会给出意外的输出
- GDB断开,同时没有控制台输出
- 如何让GDB为每一行输出显示时间戳
- Pyclewn的标准输入/输出(vim的GDB前端)
- 如何获得gdb tui汇编输出显示指令
- 是否有一种方法可以查看哪个线程正在使用gdb打印标准输出或标准错误?