c语言:讲一个困扰我一周的bug解决思路

编码之路如登山,一山放过一山拦。

简而言之,就是首先确定用例失败点,然后分析数据流向,逐步缩圈,找出bug代码段,确认出错原因。

1,从现有的出错日志中,确认出错原因是在重试时,结构体中字符串 A 部分片段缺失,导致接收方分析字符串 A 无效,返回error。

2,分析字符串 A 的数据流向。首先字符串 A 由外部传入一个基本内容 B,然后再给字符串 A 拼接上 内容 C,其次又把字符串中的内容 B 和 C 取出,赋值给其它变量。然后调用发送接口把内容B 和 内容 C 发送出去。判断当发送失败时,保存A字符串,继续进行取内容 B 和 C,,,,

3,对出错范围进行缩圈,首先判断外部传入的字符串A是否正确;然后在发送失败时,保存的字符串A内容是否完整。

4,我的缩圈范围是,在发送失败时,保存的字符串 A 的内容已经出错。然后继续缩圈,确认是在字符串 A 在进行取出内容 B 和 C 时,使用了 strtok API , 导致原字符串 A 出现了变化。

 

总结:

1,在写代码时,就要对要调用的 API 的作用 了解清楚,防止给自己挖坑。

2,在使用指针时,要特别注意,它和值传递的区别。

3,解bug思路很重要,刚开始我一直绕在重试部分的代码里面,简单认为出错原因在那里。

 

有什么关于c语言的问题欢迎留言,一起探讨!

你可能感兴趣的:(c语言,开发语言,bug)