gdb加了-g仍然(no debugging symbols found)

本文探讨了使用gdb调试程序时遇到的无调试符号问题,并通过排查Makefile配置发现是由于编译选项中包含-s参数导致调试信息被移除。通过去除该参数解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想用gdb对程序进行调试,之前的时候就想用gdb的,结果发现加了-g也还是不行,显示如下:
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-hisiv100nptl-linux"...
(no debugging symbols found)
因为当时时间紧迫,就没来得及去找原因,今天找了下原因

一般来说,如果加了-g仍然找不到符号,要么是只是在.o文件生成可执行文件的时候加的-g,而在.c生成.o文件时忘记加了,要么是把可执行文件strip了,可是我查找我的Makefile,这两种可能都不是。写了小的测试程序,发现是可以gdb的,怀疑还是我Makefile的flag写的不对,查找,发现有个-s的选项,查资料发现,原来是它把我的符号给去掉了,去掉-s,ok,done

本文转自:

https://blog.youkuaiyun.com/gzxx2007sddx/article/details/40393353

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值