bug汇总
Acuity.
只要思想不滑坡,想法总比问题多。
展开
-
while(i--)陷阱
1.案例 在访问一段存储空间时使用到“while(i–)”模型代码,抽出主体代码。/** * @brief 获取数据 * @param buf:数据返回地址 size:获取数据长度 * @retval 实际获取的数据长度*/uint32_t read_buf(uint8_t *buf,uint32_t size){ uint32_t temp = 0; u...原创 2019-07-10 22:49:52 · 2873 阅读 · 2 评论 -
bug经历(1)
背景原创 2019-08-14 00:22:31 · 251 阅读 · 1 评论 -
一个变量越界引起的灾难
1.前言 一般地,对于内存块访问(如数组、程序员动态分配的内存块、系统从堆上分配的内存块),通过“下标”形式访问时,如果稍有不留意,对于末尾地址的访问处理不当,则会发生程序异常,轻则导致当然应用程序(进程)异常退出,重则导致整个系统瘫痪。如果是在嵌入式系统里发生,如裸机程序,或者多线程的实时系统(RTOS)中,基本会导致整个系统程序异常退出(死机)。这对于用户来说是“灾难”性事的、不可接受的...原创 2018-09-12 00:40:04 · 2033 阅读 · 0 评论 -
关于8位指针强制转16位隐晦问题
&emsp;最近关于一个void fun(uint8_t *buf, uint8_t size){ uint8_t i; uint16_t data; for (i=0; i<4; i+=2) { data = *((uint16_t *)&buf[i]); /* todo */ } }原创 2019-09-26 00:18:02 · 4271 阅读 · 2 评论