我正在使用 scientific linux。在目录 user/project/Build 中,在我运行“make”编译和链接所有 cpp 文件后,我没有遇到任何问题。但是,当我转到目录 user/run/run.sh(它在 user/project/Build/bin/project 中运行项目二进制文件)时,出现段错误。在目录 user/run 中,我在命令提示符中输入“gdb”并收到消息“*** 未指定目标且未找到生成文件。停止。”
我应该如何检测段错误?
最佳答案
首先,您必须构建支持调试符号的项目。对于 gcc
,这是使用 -g
选项完成的。然后使用程序的可执行文件运行 gdb
。例如:
gdb ./a.out
gdb
命令提示出现。为了启动您的程序,您应该执行命令run
。如果您的程序需要一些命令行参数,您也可以指定它们。例如 run -d firstarg -l secondarg
等
当你的程序接收到一个段错误时,只要在 gdb
提示符下执行命令
bt 完整
这将为您提供程序的回溯、变量状态和收到段错误的源代码行。
关于c++ - 使用 gdb 检测 sh 中的段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27992719/