工程原来使用cgt c6000 8.2.2之前版本一直编译正常,最近安装了cgt c6000 8.2.3后,编译报错,描述为:
Object size 671088640 byte is greater than maximum supported size 536870911 bytes
之后试用8.2.4和8.3.0均会有同样问题,好像是堆大小被限制在512M字节了!!!
Shine:
这个是CGT的bug,请参考下面的帖子。
e2e.ti.com/…/886334
xian ping:
程序中使用了deque,析构时出现崩溃现象,查源码发现C6000 8.3版本修改了deque实现(请自行查看源代码),其中deque析构时调用的clear方法中,释放资源时对迭代器使用了++操作,典型的迭代器失效案例,这是数据结构中的基本常识,每个合格的程序员都应该具备的基本素质!在基础库中竟然出如此低级的编程思想错误,在此对TI的程序员素质表示严重怀疑,请给予重视!TI作为大企业,竟然没有对新修改的标准库这样的产品进行测试就发布,难道没有测试团队?那单元测试也没有?这在单元测试阶段就能发现的简单错误,竟然还能通过后续的系统和集成错误?另人匪夷所思!!!
xian ping:
回复 Shine:
既然已经发现了这么久的Bug,而且已经过了几个版本,怎么只是报另一个错误,让人去规避这样的用法,而不是解决此问题,至少也应该在报错时直接描述不能直接设置堆大于256M吧!