【问题标题】:gdb reports Segmentation fault - how to know where?gdb 报告分段错误 - 如何知道在哪里?
【发布时间】:2015-08-25 05:39:05
【问题描述】:

我在 gdb 下运行我的程序,带有调试信息并且没有任何优化。 gdb 报告:

Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffeffff700 (LWP 8875)] 0x0000001000000001 in ?? ()

从这条消息中,我不明白问题发生在哪里。是否可以提取堆栈跟踪/问题文件和行号?

【问题讨论】:

  • 你试过回溯,bt命令吗?
  • 不,我不知道这样的命令
  • 那你应该先查看 gdb 帮助
  • 谢谢,bt 帮助!您可以将其添加为答案以便我接受吗?

标签: c++ gdb rhel


【解决方案1】:

要找到发生代码分段错误的点,您应该使用 backtrace (bt) 命令。

gdb 中有很多可用的命令,应该探索这些命令以帮助您尽可能高效地调试代码。

例如您可以记录您的代码流并反向重播。 探索数据类型 有断点等。

【讨论】: