小技巧:打印log时, 多了一个感叹号, 至少节省了1-2个小时!------又来说strings

本文介绍了一种在代码发布后发现修改未生效的情况下的排查方法。作者通过在关键位置加入特殊标记并利用strings命令检查二进制文件,最终定位到问题原因是同事发布时未编译含有作者修改的基础库。

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

       最近, 我花了半天时间改的代码, 别的同事携带发布后, 我发现我的修改并没有生效, 很纳闷。

       难道, 我要去check一下我的代码逻辑吗? 在测试环境上测试, 明明是没有问题的啊, 怎么发布后就不生效呢? 于是, 我怀疑, 可能是发布的时候, 并没有真正携带上我的修改。 最后的结论是: 别的同事没有编译我修改的基础库, 导致确实没有携带我的修改。

       怎么发现的呢? 我写代码有个习惯, 会在打印log时, 携带上标记。 如果修改的代码确实不需要打印log,  那就在代码文件的已有打印log的地方, 加个感叹号之类的东西, 作为标记区分, 最后编译出来的二进制文件是否携带这个感叹号, 就可以确定是否携带了我的修改。

       举个例子, 原来的log是:

printf("connect error, iRet is %d\n", iRet);
       我会把它改成:

printf("connect error! iRet is %d\n", iRet);
       这样, 可以利用strings命令来扫最后的二进制文件, 通过,和!的区分, 就能识别出来。

        当然, 如果我修改的代码本身就有log, 就不需要这么搞了, 自身的log就是一种标记, 可以用string命令来区分。



        如果有疑问, 请参考:http://blog.youkuaiyun.com/stpeace/article/details/50077677  《再次唠叨linux中的strings命令》



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值