gdb多文件调试加断点

devil_may_care 2013-08-02 04:36:33
我在调试时要在一个文件中加断点,但是提示说:
输入break file.c:30
No source file named file.c.
Make breakpoint pending on future shared library load? (y or [n]) n
百度了好久没有结果,求解答
...全文
637 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
devil_may_care 2013-08-02
  • 打赏
  • 举报
回复
多谢楼上诸位,我找到原因了,生成 .o 文件时也需要加 -g 才可以!
devil_may_care 2013-08-02
  • 打赏
  • 举报
回复
引用 8 楼 FENGQIYUNRAN 的回复:
我是12.10,和makefile同一个目录下
makefile是gcc配置文件吗?在哪里
FeelTouch Labs 2013-08-02
  • 打赏
  • 举报
回复
我是12.10,和makefile同一个目录下
devil_may_care 2013-08-02
  • 打赏
  • 举报
回复
引用 4 楼 FENGQIYUNRAN 的回复:
我一直都是这么干,向来好使
我是ubuntu12.04系统,makefile.in文件路径是什么
devil_may_care 2013-08-02
  • 打赏
  • 举报
回复
引用 1 楼 turingo 的回复:
应该是你在编译的时候,没有加-g的选项,导致没有产生调试符号。
引用 2 楼 max_min_ 的回复:

可能是1 楼说的原因哦!
makefile 文件里, 编译加上g 选项试试
很有用的,这样gdb调试的时候都会显示变量名 函数名,不会是16进制地址了
引用 5 楼 zhctj159 的回复:
编译时加-g选项来保留调试信息才能进行调试
我添加-g选项了 编译时先选择-c选项,把所有cpp文件生成 .o 文件 然后 g++ -g *.o -o pp 但是不行啊
zhctj159 2013-08-02
  • 打赏
  • 举报
回复
编译时加-g选项来保留调试信息才能进行调试
FeelTouch Labs 2013-08-02
  • 打赏
  • 举报
回复
我一直都是这么干,向来好使
FeelTouch Labs 2013-08-02
  • 打赏
  • 举报
回复
遇到此类问题的解决方案如下:
第一:确定你是否在该目录下设置断点,根据你的错误提示,你已经在正确的目录下了
第二:修改你的配置文件,具体如下:

第三:修改完之后,一定要重新编译,而且编译步骤不能少,如下,时间稍长,需耐心:
./configure
make clean
make depend
make
sudo make install
第四:若以上三步还不好使,重新按装GDB,重复上述步骤
max_min_ 2013-08-02
  • 打赏
  • 举报
回复

可能是1 楼说的原因哦!
makefile 文件里, 编译加上g 选项试试
很有用的,这样gdb调试的时候都会显示变量名 函数名,不会是16进制地址了
图灵狗 2013-08-02
  • 打赏
  • 举报
回复
应该是你在编译的时候,没有加-g的选项,导致没有产生调试符号。

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧