gdb 报告分段错误 - 如何知道在哪里?

gdb reports Segmentation fault - how to know where?

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

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

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

要获取发生代码分段错误的点,您应该使用回溯 (bt) 命令。

gdb 中提供了范围广泛的命令,应该探索这些命令以帮助您尽可能高效地调试代码。

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