查看: 3575|回复: 9

[CodeWarrior] Codewarrior栈溢出的问题(已解决)

[复制链接]

该用户从未签到

4

主题

23

帖子

0

注册会员

Rank: 2

积分
69
最后登录
1970-1-1
发表于 2014-9-29 09:09:37 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZJJ 于 2014-10-9 19:57 编辑




楼主用的是MC9S12XET256,发现一个问题Codewarrior在栈溢出的时候不会报错,请问各位栈溢出报错需要在哪儿设置。下面是楼主的测试程序
unsigned int test_data1;
void main(void)
{
  unsigned int test_data2[100000];
  test_data2[0] = test_data[100000] = 100;
  test_data1 = test_data2[0];
}
这个样子栈空间明显不够,但是编译器也不会报错。楼主关了优化,也看了汇编程序,添加的测试程序没有被优化。



我知道答案 目前已有9人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-29 09:39:35 | 显示全部楼层
楼主你好。
你本身的栈分配了多大呢?
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

23

帖子

0

注册会员

Rank: 2

积分
69
最后登录
1970-1-1
 楼主| 发表于 2014-9-29 10:11:55 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-29 09:39
楼主你好。
你本身的栈分配了多大呢?

0x1000;4kb
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

23

帖子

0

注册会员

Rank: 2

积分
69
最后登录
1970-1-1
 楼主| 发表于 2014-9-29 10:14:27 | 显示全部楼层
栈溢出这个问题,应该不设置编译器也会报错吧。我栈分配就是按照建工程的时候默认分配的。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-29 10:14:55 | 显示全部楼层

那是超了。
你用的CW的版本是多少?
我帮你去问问CW的工程师。
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

23

帖子

0

注册会员

Rank: 2

积分
69
最后登录
1970-1-1
 楼主| 发表于 2014-9-29 10:16:59 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-29 10:14
那是超了。
你用的CW的版本是多少?
我帮你去问问CW的工程师。

5.1,谢谢啦。
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

23

帖子

0

注册会员

Rank: 2

积分
69
最后登录
1970-1-1
 楼主| 发表于 2014-9-29 10:18:25 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-29 10:14
那是超了。
你用的CW的版本是多少?
我帮你去问问CW的工程师。

我测试的时候是用PE自动生成的程序,栈设置应该没有问题。生成了以后就加入了测试代码。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-29 11:50:48 | 显示全部楼层
allen 发表于 2014-9-29 10:18
我测试的时候是用PE自动生成的程序,栈设置应该没有问题。生成了以后就加入了测试代码。 ...

楼主你好,相关的CW工程师暂时不在。
的确这个超出没有报错,估计应该是要设置相关的配置才能报。
不过超出之后,你也可以看出来的,一般它的地址会超出你RAM的大小范围。
如果是debug,运行定义数组的操作时,由于越界会出错。
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

23

帖子

0

注册会员

Rank: 2

积分
69
最后登录
1970-1-1
 楼主| 发表于 2014-9-29 11:56:30 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-29 11:50
楼主你好,相关的CW工程师暂时不在。
的确这个超出没有报错,估计应该是要设置相关的配置才能报。
不过超 ...

嗯,我也找了在哪儿设置,但是没有找到,所以才来问的。我测试程序很明显栈溢出了,是可以看出来。假如说我在函数调用中发生栈溢出,就不是那么容易看出来了。我编译原理没怎么学,难道编译器不会根据函数的嵌套算出最大需要栈空间吗?这样不报错的话,软件开发者自己算也未免太难了。
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-29 12:42:43 | 显示全部楼层
allen 发表于 2014-9-29 11:56
嗯,我也找了在哪儿设置,但是没有找到,所以才来问的。我测试程序很明显栈溢出了,是可以看出来。假如说 ...

这样吧,暂时CW工程师不在,
你如果急就到我们的官网提交一个技术服务请求,建立服务请求的链接:
https://www.nxpic.org.cn/module/forum/thread-578569-1-1.html
2楼,点击提交SR按钮,然后按照流程走。
问题内容描述使用英文书写方式。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-25 08:43 , Processed in 0.109488 second(s), 30 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表