ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c – gdb程序使用CMake退出代码01以获取程序

2019-10-03 15:08:48  阅读:243  来源: 互联网

标签:c linux gdb qt emacs


我正在使用科学的linux.我正在使用大量的cpp文件处理大量的C代码.现在,它成功编译,但我得到的价值/数据肯定是错误的.此外,对于代码进行的一些小改动会导致seg错误.

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

当我转到目录/ user / project / Build / bin然后键入gdb项目然后运行时,我看到了
程序退出,代码为01.缺少单独的debuginfos,请使用:debuginfo-install glibc ..

如果我尝试设置断点,例如break test.cpp:19,我会得到消息No source file named test.cpp.
在未来的共享库加载中使断点挂起?
但我显然有一个名为test.cpp的源文件

我该如何设置断点?考虑到我是Unix的初学者,我应该使用另一个IDE,如emacs或Qt creator吗?

解决方法:

你读过GDB的documentation了吗?绝对值得一读.另请阅读gdb上的一些tutorial

如果你的Makefile-s是由cmake生成的,你还应该研究make的documentation of cmakedocumentation.另见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,emacs,gdb,make,grep或ack,etags,git,awk,……).要知道如何明智地使用它们并将它们结合使用,这需要花费数周或数月的知识.另见this& that.

标签:c,linux,gdb,qt,emacs
来源: https://codeday.me/bug/20191003/1849986.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有