凯幽MRP-刷钻/免费/破解/软件/游戏!

凯幽MRP开发网_www.mrpyy.cn_刷钻软件

当前位置: 主页 > MRP开发 > 修改教程 >

在mythroad平台死机的原因和调查方法

时间:2010-12-19 10:52来源:凯幽网 作者:凯幽 点击:
一、死机的原因 断言: 所有软件引起的死机都是执行非法的指令或者非法的内存操作。 非法的内存操作比较常见,例如有内存溢出,内存反复释放,内存错误的读写,野指针的使用等。 非法

一、死机的原因 
断言: 所有软件引起的死机都是执行非法的指令或者非法的内存操作。 
非法的内存操作比较常见,例如有内存溢出,内存反复释放,内存错误的读写,野指针的使用等。 
非法的指令比较少见, 例如除零操作。 

二、死机的调查方法 
1. 确认是否进入mrc_init函数。 
当没有进入mrc_init函数就已经死机了,可能的原因是不正确的打包方式、不稳定的SDK版本、不正确的环境配置。 
首先排除sdk和环境配置问题,很简单只有拿一个正常程序(helloworld也行),在该SDK编译,如果能正常运行说明sdk和环境没有问题。 
接着检查打包时的配置文件有没有写错。 
常见的错误: 
有arm模式和thumb模式一起使用。 
展讯版本和MTK版本没有区分好。 
插件化打包方式不正确。 
  
2. 当程序成功进入mrc_init函数时,用log定位死机的位置。 
根据现象知道程序死机的大概位置,有针对性地进行log的打印。 
如果你什么都不知道那么从mrc_init开始着手,一个一个函数的定位。 
定位以函数为单位,代码如下 
FPRINTF(“main: in”); 
main(); 
FPRINTF(“main: out”); 
如果死机发生在main里,那么不会输出“main: out”这条信息。 
通过这样的方法定位到具体的语句和底层函数为止。 

3.用log定位死机的位置,但死机的位置经常变化怎么办? 
这时要非常注意内存操作的函数和指令。 (责任编辑:凌云神风)

顶一下
(1)
50%
踩一下
(1)
50%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容