程序调试方法
创始人
2025-05-30 19:59:53

调试思路

  1. 程序中一定要尽可能的做容错处理,可能会出错的地方,增加打印日志,这样在出问题时候才能最快的定位问题,所以这个属于前置工作,前置做的越多越好,后期调试越省力,程序也更健壮。
  2. 学会看日志信息(输出信息),好多新人最容易产生的心态就是一出问题,看到一堆英文的日志就慌了,不会甚至不敢静下心来先去读读什么意思,这是大忌,这种心态永远也不会成为高手。所以如果有日志,先不管你会不会调试,先别惧怕它,先尝试去读读,读不懂就帖到翻译软件去翻译,尝试着根据给出的信息做出分析,这也是和问题贴的最近的信息。
  3. 多维度的分析问题,这个思想其实好多有经验的工程师也做不到。大多数人遇到一个问题后就会困在自己的思路里出不来了,很可能一开始选的路就是错的,那么沿着这个路继续下去不管你怎么折腾,最终一定是死胡同。所以如果一个问题卡了很久,查了很多资料,想了很多办法都解决不了,不妨先停下来,出去走走,抽一支烟,过程中想想抛掉固有的思想,换种思路说不定能柳暗花明。
  4. 用好最简单的调试–打印,通过打印和日志基本能解决90%的问题,所以利用好打印信息,但是打印不要乱加,通常遵循以下几条规则:
    a. 加的打印一定要区分出位置,有些新人经常使用类似"---------","aaaaaaa"这种毫无意义的打印输出,到最后搞的到处都是这些日志,根本无法定位。所以增加的打印信息尽量有意义,带文件和行号是最好的。gcc有几个关键字能自动输出文件和行号,比如:

文件和行号的打印方法

printf("当前文件是[%s],当前行号是[%d]\n", __FILE__, __LINE__);

printf("当前文件是[%s],当前行号是[%d]\n", __FILE__, __LINE__);
b. 先根据逻辑分析,缩小问题范围,加打印不要到处都加,尽量先根据自己的逻辑或者按照二分法法则,在一些关键位置增加打印,一步步把问题定位到最小的范围,然后针对几句话去做分析,尤其是段错误这种问题。
c. 发布型产品通常都会带日志输出(打印是直接输入到终端的信息,日志通常指的是文件),因为一旦产品发布就没法通过终端的形式再获取到输出了,所以程序里一般会把一些关键的调试信息输出到日志文件中,以便出厂后问题分析。这种功能可以自己做,也可以利用一些现成的库,比如Linux自带的syslog就是一个非常好用的日志服务,感兴趣可以自己研究
5. 有些非常难找的问题,尝试使用专业的工具定位。

调试工具

首选当然还是开发平台自带的调试工具,官方的肯定是最好用的,比如Visual Studio的单步调试、QT的调试工具、KeilJlink或者STlink结合的硬件单步调试,都是非常强大的工具。

cppcheck

简介
这个工具是一个静态代码检查工具,适合写完代码还未运行时候先提前检查一些问题,使用起来比较简单。
Cppcheck_百度百科

rdynamic

简介
这个是gcc的一个选项,主要针对段错误定位的,配合gdb来使用能立马定位到段错误的行号。
教程
1

valgrind

简介
valgrind可以说是嵌入式开发调试的一款神器,不管是在虚拟机里开发还是在设备上开发,都可以使用,而且功能非常强大。
教程
2

CDT+GDB 图形化远程调试

简介
直接用gdb来调试代码其实不太好用,因为它是命令型的,所以效率相对较低,但是如果结合其它的工具,做成工具型的,再配合远程调试,那么在嵌入式Linux中调试效率基本可媲美Visual Studio的单步。
教程

相关内容

热门资讯

柳州城建10亿中期票据6月12... 公司动态 6月3日,广西柳州市城市建设投资发展集团有限公司(以下简称“柳州城建”)发布2024年度...
恒宝股份有限公司股票交易异常波... 本公司及董事会全体成员保证公告内容的真实、准确和完整,不存在虚假记载、误导性陈述或者重大遗漏。 一、...
深夜,利好!全线爆发! 深夜大... 超级赛道再迎利好催化。今晚,美股核能概念股全线爆发,Nuscale Power盘初一度大涨超13%,...
高晓峰:6.3全球市场震荡!美... 高晓峰:6.3全球市场震荡!美元与黄金‘跷跷板’效应再显威力 成功的交易者,要深深了解到事物的发展是...
蒙草生态涨4.60%,成交额3... 6月3日,蒙草生态涨4.60%,成交额3.29亿元,换手率5.65%,总市值69.30亿元。 异动分...
涉亲属账户短线交易!超20家A... 多地证监局加大对短线交易的打击力度,披露多起涉及短线交易的罚单,其中多位公司大股东、董监高人员因短线...
张雪峰从互联网“消失”,是迟早... 作者 |暴雨6月2日,“张雪峰自曝可能告别直播”话题冲上热搜。他的原话这样说:“干我这个行当不容易的...
50亿美元大单提前预告,石药集... 出品|达摩财经即将签下50亿美元大单,石药集团(1093.HK)股价随之上涨。5月30日,石药集团发...
6月3日这些公告有看头 6月3... 2025.06.036月3日晚间,沪深两市多家上市公司发布公告,以下是第一财经对一些重要公告的汇总,...
碧桂园地产集团10亿股权被冻结... 爱企查App显示,近日,碧桂园地产集团有限公司新增一条股权冻结信息,股权所在企业为深圳市碧桂园房地产...
碧桂园地产集团10亿股权被冻结... 爱企查App显示,近日,碧桂园地产集团有限公司新增一条股权冻结信息,股权所在企业为深圳市碧桂园房地产...
雷军称小米汽车芯片很快推出,马... 今天是6月3日 农历五月初八 世超这几天 一直说要减肥 搞了一箱代餐饮料当饭喝 结果我今天发现 他喝...
上交所最新上市发审动态揭保荐机... 导读:在这份《最新审核动态》,上交所也按照惯例通报了在IPO审核过程中发现带病闯关上市的两大监管案例...
股票行情快报:XD永吉股(60... 证券之星消息,截至2025年6月3日收盘,XD永吉股(603058)报收于7.92元,上涨1.15%...
“稳定币”概念股暴涨背后:三重... 本报(chinatimes.net.cn)记者卢梦雪 北京报道 美国《GENIUS法案》通过,香港《...
稳定币突然爆火,对我们有啥影响... 节前,其实有一件大事发生。那就是,香港政府在宪报上刊登了《稳定币条例》。《稳定币条例》正式成为法例,...
“童装第一股”五年亏掉5亿,深... 来源 | 深蓝财经撰文 | 杨波“童装第一股”,安奈儿的老板这回真不想干了。6月3日,安奈儿刊发关于...
成都天府机场外一辆新能源车着火... 来源 | TcehWire6月3日上午,有多位网友发视频称,四川成都天府机场T2航站楼外道路上一辆新...
三四千家都在卖?零公里二手车是... 说起最近的汽车市场,相信一个很神奇的名词突然爆火,这就是零公里二手车,零公里和二手车这两个看上去完全...
一年融资三轮,这家半导体公司获... 5月,证监会官网新增披露17家企业进行IPO辅导备案。至此,2025年新增披露123家企业辅导备案。...
有个股收益率突破2000%!港... 2025.06.03本文字数:2443,阅读时长大约5分钟作者 |第一财经 王方然"叮!"——一声信...
原创 特... 近期,美国联邦巡回上诉法院批准恢复执行特朗普的关税政策,这一消息瞬间吸引全球目光,再次将特朗普的关税...
布局无尽能源:这7家能源公司正... 中核集团透露,近日,新一代人造太阳“中国环流三号”实现百万安培亿度H模,即同时实现等离子体电流100...
全球及中国2MHz核磁共振岩芯... 全球及中国2MHz核磁共振岩芯分析仪行业动态规划及投资机遇调研报告2025-2031年 【全新修订...
李在明出口民调大幅领先 新总统... 新华社首尔6月3日电 韩国第21届总统选举3日正式投票。根据三大电视台在投票结束后公布的联合出口民调...
中国太保发布500亿战新并购基... 6月3日,中国太保正式发布总规模500亿元的太保战新并购基金与私募证券投资基金。上海市委常委、常务副...
6月4日A股投资避雷针︱电声股... 电声股份股东赏睿集团、曾俊、周晓露拟减持合计不超5%股份;博深股份董事陈怀荣拟减持不超1.38%股份...
年初以来上涨8.3%!渣打人民... 6月3日,渣打人民币环球指数(RGI)最新报告显示,该指数2025年前4月连续上行,升至八个月以来高...
董宇辉首次与省委书记互动,意义... 成为“老板”不到一年的董宇辉,和政界的互动达到了新高度。据《广西日报》报道,6月3日,广西壮族自治区...
21 深度丨国投证券高层再变阵... 21世纪经济报道记者李域 深圳报道国投证券高层人事变动还在持续。近日,五矿集团官网最新信息显示,原国...