Benchmark库的建立06:变量溢出 Bug
来源:互联网 发布:ps ef grep java 编辑:程序博客网 时间:2024/05/22 03:28
Bug类型
- 变量溢出 Bug
正确版本程序
- apps/benchmark/TestOverflow
程序描述
- 传感器每0.1S采集数据并保存到的buffer[2]数组中;
- 传感器采集数据成功,切换LED0的状态,并提交
computeTask任务,采集失败则切换LED1的状态; - 任务computeTask中计算结果如果大于uint16_t则发生溢出,切换LED2的状态。
Avrora运行程序
- cd /opt/tinyos-2.x/apps/benchmark/TestOverflow
- alias avrora=’java -jar avrora-beta-1.7.113.jar -colors=false -banner=false’
- SENSORBOARD=mts300 make mica2
- mv build/mica2/main.exe tof.elf
- avrora -platform=mica2 -monitors=leds -seconds=2 -simulation=sensor-network -nodecount=1 -sensor-data=”“light”“:0:. tof.elf
运行结果分析(正确版本)
- LED0切换结果正确;
- LED1、LED2不发生切换。
bug版本程序
- /apps/benchmark/bm_TestOverflow
程序修改的部分
- computeTask任务中将简单的数据求和改成求积运算。
bug的显现条件
- 运算结果大于uint16_t的最大取值时
Bug症状
LED0正常切换。LED1不切换,LED2也会发生切换(表示计算结果发生溢出);
运行net.tinyos.tools.PrintClient程序会显示变量溢出信息:Error:Variable Overflow!
备注
- 正确版本的TestOverflow程序也有可能出现
Bug,只不过求和溢出的概率比较低而已。
0 0
- Benchmark库的建立06:变量溢出 Bug
- Benchmark库的建立01:数组越界bug
- Benchmark库的建立02:除0 bug
- Benchmark库的建立03:空指针异常Bug
- Benchmark库的建立05:任务Post失败 Bug
- Benchmark库的建立04:单个任务的长时间执行Bug
- 变量溢出的计算方法
- 一个栈溢出的BUG
- ulua整数溢出的BUG
- Google benchmark:一个简单易用的C++ benchmark库
- 变量溢出引发的错误
- 缓冲区溢出引起奇怪的bug
- 文本溢出显示省略标记'...'的bug
- Firefox奇怪的文字溢出bug,百思不得其解
- 内存溢出bug的修复方法
- IE6下的文字溢出BUG
- Storm netty client溢出的bug分析
- STM32F429的USART波特率计算溢出Bug
- 集群环境下的文件上传和下载和文件服务器的配置
- 详解 Masonry
- 优酷分享iframe播放器页面存在dom xss漏洞(附漏洞分析过程)
- IOS-54-IOS开发中cookie的作用简介
- Microsoft SQL Server 自定义函数整理大全
- Benchmark库的建立06:变量溢出 Bug
- 19. Remove Nth Node From End of List
- 常用人脸库
- 网络请求设置 && arc&mrc互转
- 可能是最鸡汤的面经
- 黑马程序员_代码块
- Python中用feedparser解析RSS
- 文本挖掘之降维技术之特征选择
- 2015年9月——2016年2月半年总结