gpt4 book ai didi

c++ - 对于使用 CMake 的程序,gdb 程序退出代码 01

转载 作者:太空宇宙 更新时间:2023-11-04 03:44:25 27 4
gpt4 key购买 nike

我正在使用科学linux。我正在处理大量 C++ 代码和大量 cpp 文件。现在,它编译成功,但我得到的值/数据肯定是错误的。另外,对于我对代码所做的一些小更改会导致段错误。

在目录user/project/Build中,我输入make来编译并链接所有cpp文件。然后,我必须转到 user/project/Build/bin/project 通过输入 user/run/run.sh

来运行项目二进制文件

当我进入目录 /user/project/Build/bin ,然后输入 gdb project ,然后 run 时,我看到程序退出,代码为 01。缺少单独的调试信息,请使用:debuginfo-install glibc..

如果我尝试设置断点,例如通过 break test.cpp:19,我会收到消息没有名为 test.cpp 的源文件。
在将来的共享库加载时设置断点?
但我显然有一个名为 test.cpp 的源文件

如何设置断点?考虑到我是 Unix 的初学者,我应该使用其他 IDE,例如 emacs 或 Qt Creator?

最佳答案

您读过documentation吗?广发银行?绝对值得一读。另请阅读一些tutorialgdb

如果您的 Makefile-s 是由 cmake 生成的,您还应该研究 documentation of cmakedocumentationmake。另请参阅this answer相关问题。

您是否使用 g++ -Wall -g 编译所有您的软件(并且没有任何优化标志,如 -O1-O2) - 或者甚至使用 -g3 而不是 -g

您甚至可以安装您正在使用的主要库的调试变体(例如 glibc-debuginfo 等软件包......)

您可能想要指定(对于 gdb)要使用 dir command 进行搜索的源目录。 gdb ...

是的,我建议使用emacs。但最重要的是,我强烈建议您花几个小时(也许几天甚至几周)来了解更多有关 Linux 及其软件开发的信息(有很多书籍、网站、tutorialsother 培训……有关这些)。也许从一个类似 hello-world 的小程序开始(学习如何使用 g++ 编译它并使用 gdb 调试它)。然后尝试编译和调试您喜欢的小型(例如十万行源代码)免费软件(例如 fishshell 或从 sourceforgegithub 获得的任何内容),只是为了了解此类软件是如何构建的。

如果您正在使用(或改进)大型科学软件,它可能有一些社区网站、邮件列表或寻求帮助的论坛(请参阅 geantkivaaster 作为示例,我只知道名称!)。也请使用它们。

PS。这主要不是选择工具的问题:您使用的是好的工具(GCC,即 g++emacsgdbmakegrepacketagsgitawk,....)。花几周或几个月的时间来获取有关如何明智地使用它们并结合它们的用途的知识是一个问题。另请参阅this & that

关于c++ - 对于使用 CMake 的程序,gdb 程序退出代码 01,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28680739/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com