当前位置:  技术问答>linux和unix

高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!

    来源: 互联网  发布时间:2015-08-10

    本文导语:  在运行该程序时候,突然发现终端打印类似下面的字符...好象是系统内存区不足了,但是我的嵌入式系统有8M的SDRAM, 而且整个UCLINUX内核编译完后只有2.5M大小, 应该内存区还是够的,但是为什么会出这样的错误呢?  不知...

在运行该程序时候,突然发现终端打印类似下面的字符...好象是系统内存区不足了,但是我的嵌入式系统有8M的SDRAM, 而且整个UCLINUX内核编译完后只有2.5M大小, 应该内存区还是够的,但是为什么会出这样的错误呢?  不知有什么办法可以解决该问题呢??? 怎么知道我的应用程序可用的存储区的大小??另外我想知道, 启动一个线程的时候,可以指定该线程所占用的存储区的大小吗?  另外,如果程序中运行多进程的话,每一个进程所占用的内存是由内核固定分配大小的还是进程生成时根据需求可变的? 谢谢

下面是终出错时终端的打印:

Allocation of length 1048576 from process 37 failed 

Buffer memory: 952kB
Cache memory: 788kB
Free pages: 1176kB( 0kB HighMem)
Zone: DMA freepages : 0kB  min: 0kB  low: 0kB  high: 0kB
Zone: Normal freepages: 1176kB  min: 80kB  low: 160kB  high: 240kB
Zone: High Mem freepages: 0kB   min: 0kB   low: 0kB    high: 0kB

(Active:270, in active:165, free:294) = 0kB)

44*4kB  7*8kB  3*16kB  0*32kB 0*64kB  1*128kB  1*256kB 1*512kB
0*1024kB 0*2048kB = 1176kB)
=0kB)



|
http://www.eetchina.com/ART_8800294205_617681,640279.HTM.b8a1cec3

可能是动态分配内存问题吧。

……………………………………
标准C库函数malloc()和free()可在任意的时间段中,为应用分配任意大小的内存块。随着内存块的使用和释放,在整个内存区域中,分配给堆栈的存储区将混杂着许多正在使用或已经释放的存储块,而未被使用的任何小块内存区将变得无法使用。例如,某个应用要求堆栈分配30字节,如果堆栈中只有20个长度为3字节的小存储块(总共为60字节),那么堆栈仍然无法为该应用分配内存,因为所需的30字节必须是连续的。 

在执行时间较长的程序中,内存碎片可能导致系统的内存枯竭,尽管分配的内存总量并未超出总的可用内存总数。内存碎片的数量取决于堆栈的实现策略。大多数程序员均采用由编译器提供的malloc()和free()函数创建的堆栈,因此内存碎片就不受程序员的控制。
……………………………………………………

|
uclinux好像对c++的内存分配以及多线程支持的不够好,我们公司以前在uclinux下用c++做了一个程序,也经常出现这种错误,后来改用c就好了,具体原因也有可能是我们当时的c++代码有问题

|
你是不是在这一个程序里面多次创建线程然后又杀死线程呢?
我们公司后来那个项目就是一次性就把所有线程创建好,在程序的运行过程中,没有再创建线程了!

|
类似问题我们也遇到过,后来加了一条内存,就好了.  我们那个是代码写的不能太多,多了就不行,但是内存空间还有.

|
我遇到过这样的问题,楼主说一下你的平台先

|
每个进程的栈空间是内核指定的吧,查uclinux的代码。

    
 
 

您可能感兴趣的文章:

  • (●●●●,高分)在linux下当我用如下方法挂载(mount)window分区时出现如下错误:
  • 安装软件时出现这种错误是怎么回事?(高分相送)
  • [高分求助]小弟在编第一个驱动程序时出现了若干辣手问题,请高手指教!
  • linux下的vi中的乱码问题(急急急,在线等待!!!!!!,解决问题给高分)
  • 高分相送:谁能告诉我freebsd5.1的详细步骤和配置步骤阿,只送第一个解决者
  • 高分求救:我的solaris8如何进行网络配置?解决立即送分!
  • 我的resin怎么总死掉,解决给高分!
  • 高分请高手,高手定能解决
  • [高分相送200] 谁有linux下socket编写的发送文件源代码?(解决另开贴)
  • 请问各位大大,smoothwall2.0怎么打开ssh服务啊?解决后高分相送!
  • 高分求中文乱码解决办法
  • 高分,如何才能支持EJB2,解决再给100分
  • 高分400相送,进程监控方面的问题,解决了另开贴给分
  • 如何解决JCreator Pro对中文的支持?高分相赠
  • 【一个关于Linux/Unix程序开发的问题,很久了,没有人解决】 ---------UP有分,高分求解
  • "I/O error", 急!! 有人遇到过类似问题没有?怎么解决?高分!!
  • 高分请教:我用linux作网关,但我在内网不能连接外网的vpn(具体情况见帖),请问如何解决!谢谢
  • 关于unix 程序专windows 平台的问题(高分求助,解决即给分)
  • $$$$$$$$$$$$$$$$如何在jsp文件中显示JPanel?在线等待,问题解决就送高分!!!!!
  • 高分求救!!为什么我采取升级方式安装rpm时老是出错!(在线等候,解决了马上给分100)
  • 高分求助网卡问题,只要意见合理,即使解决不了问题,同样散分
  • 有谁知道如何做一个html文件中的tree,就像www.helpwork.com那样的。在线等待,问题解决一定送高分!!!
  • 请问:jsp 和 applet怎样通信/? 问题解决给高分!!!!!!!!!!!!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 谁参加过weblogic的证书考试,是否有经验可供参考?高分高分高高分
  • 哪里有JB6下载啊,高分相送,救命
  • 哪里去找中文的EJB文章?高分悬赏!
  • 有jsp的upload和download 代码么,高分相报!
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 高分寻求jsp代码(网上调查系统,新闻发布系统)就这点分了
  • 高分求购做饼图、线形图的源吗?
  • 关于linu下的中文输入.(高分:300)
  • 一个简单的问题,高分求助!!!
  • 高分求购jbulider6得注册码,企业版本,个人版本都要
  • Linux远程访问的问题,高分求教:)
  • 请问哪儿有Solaris8的光盘映像文件下载???高分相赠!!!
  • 高分求“Ration Rose”&"JBuilder6.0"&"VisualCafe"
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求购:linux和unix命令大全电子文档
  • 急救:关于BLOB数据类型---在线等待,高分相送!
  • 求UNIXWARE7.11的原版下载,高分相赠,在线等待!!!
  • 关于java?高分相送!
  • 请问哪里可以下载IP地址段对应城市的信息?高分回报!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3