"Process finished with exit code 139" 在 CLion IDE 中程序在终端中 运行 正常

"Process finished with exit code 139" in CLion IDE while the program is running fine in the terminal

我正在开发一个软件项目,可以通过调用 cmakemakemake install 来构建它。 IDE 我用的是 JetBrains 的 CLion。

我不明白的是,当我在 CLion 中 运行 程序时,我得到了这样的反馈:

Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

但是,当我 运行 终端中的程序运行时,它完美无缺。 当我使用 CLion 调试器时,汇编代码出现在我面前,我不知道为什么(见下面的截图)。

我不知道该如何调试这个问题。抱歉,如果我的问题是重复的,在这种情况下,如果有人能给我看“原件”,我会很高兴。

我还应该提一下(虽然我对 Ubuntu 20.04 感觉很舒服)总体来说我对 Linux/Unix 还是很陌生,也不是 C 语言的大师。

在此先感谢您向正确方向提供的任何提示、帮助或推动!祝你有美好的一天!

我想通了。

我将 set( CMAKE_BUILD_TYPE Debug ) 行添加到项目根级别的 CMakeLists.txt 文件中。 通过这样做,我启用了 CLion 的调试功能。因此,我能够在发生分段错误的地方中断并成功调试它。

(如果有人感兴趣:导致分段错误的原因是 strrchr(const char *str, int c) 函数被调用时 str 为 NULL。str 保存了程序的文件名会读。程序在终端上运行的原因是我导航到包含文件的文件夹并执行程序。在 CLion 配置中,我以“全局形式”添加路径。通过提供相对于可执行文件的路径在 CLion 项目中为我解决了这个问题。)