KEIL调试一个神奇的问题

[复制链接]
1389|3
 楼主| jplzl 发表于 2014-5-10 11:49 | 显示全部楼层 |阅读模式
本帖最后由 jplzl 于 2014-5-10 11:54 编辑

SAM9X35调试一个简单的程序,发现个神奇的问题,先上个图
在一个函数里定义了个数组,如div1显示,但数组的地址却是SVC模式的栈起始地址
但看数组内容是正确的,如div2图,divs[]地址是在USR模式下的栈上,应该是正常情况
但在运行的过程又出问题了,divs[]数组的地址居然会变,而数组内容也变了,因此,程序出错了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| jplzl 发表于 2014-5-10 12:04 | 显示全部楼层
本帖最后由 jplzl 于 2014-5-10 12:06 编辑

问题的关键是,divs[]这个数组的地址变了,而不是divs[]数组的内容变了,正确的地地址0x306c44地址数据正确
内容没变,应该不是栈的问题
ayb_ice 发表于 2014-5-10 14:56 | 显示全部楼层
有什么奇怪的,局部变量是通过栈栈分配的

每次运行此函数时,栈是不固定的

至于出错当然是程序问题了,最有可能是指针指乱了
 楼主| jplzl 发表于 2014-5-10 15:46 | 显示全部楼层
ayb_ice 发表于 2014-5-10 14:56
有什么奇怪的,局部变量是通过栈栈分配的

每次运行此函数时,栈是不固定的

但是程序运行一直是在这个函数里呀
并不是二次进入该程序时重新分配过的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

236

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部