100分求助:内存丢失问题----急

sin360 2004-12-24 02:46:25
在uCLinix下写的pppd/pppoe程序,每运行一段时间后,用free看到的可用内存就少4096字节,请教可能是什么原因导致的?
...全文
305 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
roypan2008 2005-01-14
  • 打赏
  • 举报
回复
太棒了,我都看的晕了
up!!!!!!
lirun 2005-01-14
  • 打赏
  • 举报
回复
ucLinux没有MMU单元的,malloc和free并不能立即在free中显示。连续满负荷运行两到三天再看你的程序会不会崩溃。
显刚 2005-01-14
  • 打赏
  • 举报
回复
在线程和子进程中申请的内存可能没有正常释放就被Kill了,这样的泄漏经常出现。
gaoxianfeng 2005-01-10
  • 打赏
  • 举报
回复
画一个数据包流经pppoe的 流程图
看看 经过那里
中间那里申请内存 释放没有
sin360 2005-01-10
  • 打赏
  • 举报
回复
现在知道,mem_map中标志为s的系统函数只有一个:kmem_cache_alloc()
什么时候导致cache会自动增大?
ToIP 2005-01-06
  • 打赏
  • 举报
回复
递归调用没有正常返回,不停递归下去
sin360 2005-01-06
  • 打赏
  • 举报
回复
大家提提建议吧
sin360 2005-01-05
  • 打赏
  • 举报
回复
大家注意占用内存的位置为高地址位内存,标志为s.
这是栈的地址吧?
如果是栈,什么情况会导致数据不断的进栈却没有出栈呢?
9653013 2005-01-04
  • 打赏
  • 举报
回复
如果ps 查看内存没有增加,那么表示没有内存泄露。
我觉得ps查看是准确。
yjf7888 2005-01-04
  • 打赏
  • 举报
回复
还是程序中的问题,最笨的办法是逐步注释掉程序中的代码段查出问题在哪里
sin360 2005-01-04
  • 打赏
  • 举报
回复
可是运行一段时间后,就没有可用内存了,其他程序会报malloc()错误
sin360 2004-12-31
  • 打赏
  • 举报
回复
从上面的信息可以看出只有这两行不同:

<--0x015c0000: --------------------------------[]----------------s-------------
-->0x015c0000: --------------------------------[]--------------1ssss1ssss11----
<--0x01600000: ssss1s[]1sss111-[][][][][][]sssss1ssss11[]s11ss1[]ss[]ssss[]s1ss
-->0x01600000: ssss1s[]ssss111s[][][][][][]ssssssssss11[]s1ssss[]ss[]ssss[]s1ss

这表示什么意思呢

sin360 2004-12-31
  • 打赏
  • 举报
回复
这是运行一段时间后的mem_map
check hdd
0x01000000: RRRRRRRR[========]RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x01040000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x01080000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x010c0000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x01100000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x01140000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR[===============][=
0x01180000: ==]------------[============================][==================
0x011c0000: ================================================================
0x01200000: ================================================================
0x01240000: ================================================================
0x01280000: ================================================================
0x012c0000: ================================================================
0x01300000: ================][=================][===========================
0x01340000: ===================================][===========================
0x01380000: =====][=============================]---------------------[=====
0x013c0000: ================================================================
0x01400000: ===========================================][===================
0x01440000: =============][=================================================
0x01480000: ================================================================
0x014c0000: ]---------------------------------------------------------------
0x01500000: ----------------------------------------------------------------
0x01540000: ----------------------------------------------------------------
0x01580000: ----------------------------------------------------------------
0x015c0000: --------------------------------[]--------------1ssss1ssss11----
0x01600000: ssss1s[]ssss111s[][][][][][]ssssssssss11[]s1ssss[]ss[]ssss[]s1ss
0x01640000: R1sssssssss111ss[][][][]ssssR1R1[]ss[]sssssssssss11ssssss1[]ss[]

sh Mem: 79904 Slack: 273 Shared: 0
thttpd Mem: 211520 Slack: 5473 Shared: 0
dvdplayer.bin Mem: 1783424 Slack: 4952 Shared: 0
videod Mem: 149440 Slack: 1666 Shared: 0
registerd Mem: 149440 Slack: 1670 Shared: 0
tools Mem: 30656 Slack: 784 Shared: 0
pppd Mem: 482720 Slack: 3859 Shared: 0
pppoe Mem: 137248 Slack: 553 Shared: 0
Total Mem: 3024352 Slack: 19230 Shared: 0

Active: 0, inactive: 0, free: 338
Free pages: 338 (1352kB), %1 frag, %0 slack
Free blks: 5 min=4 max=287 avg=67
Used blks: 6 min=2 max=534 avg=221

Free Pages已经丢失了12个page
sin360 2004-12-31
  • 打赏
  • 举报
回复
这是程序刚开始运行后的mem_map
0x01000000: RRRRRRRR[========]RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x01040000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x01080000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x010c0000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x01100000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
0x01140000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR[===============][=
0x01180000: ==]------------[============================][==================
0x011c0000: ================================================================
0x01200000: ================================================================
0x01240000: ================================================================
0x01280000: ================================================================
0x012c0000: ================================================================
0x01300000: ================][=================][===========================
0x01340000: ===================================][===========================
0x01380000: =====][=============================]---------------------[=====
0x013c0000: ================================================================
0x01400000: ===========================================][===================
0x01440000: =============][=================================================
0x01480000: ================================================================
0x014c0000: ]---------------------------------------------------------------
0x01500000: ----------------------------------------------------------------
0x01540000: ----------------------------------------------------------------
0x01580000: ----------------------------------------------------------------
0x015c0000: --------------------------------[]----------------s-------------
0x01600000: ssss1s[]1sss111-[][][][][][]sssss1ssss11[]s11ss1[]ss[]ssss[]s1ss
0x01640000: R1sssssssss111ss[][][][]ssssR1R1[]ss[]sssssssssss11ssssss1[]ss[]

sh Mem: 79904 Slack: 273 Shared: 0
thttpd Mem: 211520 Slack: 5473 Shared: 0
dvdplayer.bin Mem: 1783424 Slack: 4952 Shared: 0
videod Mem: 149440 Slack: 1666 Shared: 0
registerd Mem: 149440 Slack: 1670 Shared: 0
tools Mem: 30656 Slack: 784 Shared: 0
pppd Mem: 482720 Slack: 3859 Shared: 0
pppoe Mem: 137248 Slack: 553 Shared: 0
Total Mem: 3024352 Slack: 19230 Shared: 0

Active: 0, inactive: 0, free: 350
Free pages: 350 (1400kB), %1 frag, %0 slack
Free blks: 6 min=1 max=287 avg=58
Used blks: 7 min=1 max=534 avg=187
米西米西2 2004-12-30
  • 打赏
  • 举报
回复
可能是内存泄漏问题,
在linux下可以使用dmalloc , memtool 或者IBM Rational purify 来确定,
如果不用工具,就老老实实看代码吧。
sin360 2004-12-29
  • 打赏
  • 举报
回复
使用PS看,该程序占的内存大小也没有变化。
9653013 2004-12-29
  • 打赏
  • 举报
回复
用ps aux查看内存,看内存是否增加。
lawyu 2004-12-29
  • 打赏
  • 举报
回复
应该是动态内存没有释放吧
sin360 2004-12-29
  • 打赏
  • 举报
回复
再次感谢大家的支持。
按照大家的建议做过检查,还没有找到问题。
huangyang88 2004-12-28
  • 打赏
  • 举报
回复
是不是线程的问题,在程序的运行过程中,多次开启了线程又杀掉了线程
加载更多回复(8)

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧