首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

程序交叉编译后出现如下异常

2012-03-12 
程序交叉编译后出现如下错误我的程序在X86下运行好几个小时没有问题,交叉编译后在运行大概6分钟左右出现如

程序交叉编译后出现如下错误
我的程序在X86下运行好几个小时没有问题,交叉编译后在运行大概6分钟左右出现如下问题
4_client invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
4_client invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
Normal per-cpu:
CPU 0: Hot: hi: 6, btch: 1 usd: 2 Cold: hi: 2, btch: 1 usd: 0
4_client invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:10557 inactive:45 dirty:0 writeback:0 unstable:0 free:300 slab:843 mapped:0 pagetables:42
Normal per-cpu:
CPU 0: Hot: hi: 6, btch: 1 usd: 2 Cold: hi: 2, btch: 1 usd: 0
Normal per-cpu:
CPU 0: Hot: hi: 6, btch: 1 usd: 2 Cold: hi: 2, btch: 1 usd: 0
DMA free:440kB min:252kB low:312kB high:376kB active:11232kB inactive:52kB present:16256kB pages_scanned:19637 all_unreclaimable? yes
Active:10557 inactive:45 dirty:0 writeback:0 unstable:0 free:300 slab:843 mapped:0 pagetables:42
4_client invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
Mem-info:
DMA per-cpu:
Active:10557 inactive:45 dirty:0 writeback:0 unstable:0 free:300 slab:843 mapped:0 pagetables:42
DMA free:440kB min:252kB low:312kB high:376kB active:11232kB inactive:52kB present:16256kB pages_scanned:19637 all_unreclaimable? yes
lowmem_reserve[]: 0 47
Normal free:760kB min:760kB low:948kB high:1140kB active:30996kB inactive:128kB present:48768kB pages_scanned:52623 all_unreclaimable? yes
DMA free:440kB min:252kB low:312kB high:376kB active:11232kB inactive:52kB present:16256kB pages_scanned:19637 all_unreclaimable? yes
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
lowmem_reserve[]: 0 47
Normal free:760kB min:760kB low:948kB high:1140kB active:30996kB inactive:128kB present:48768kB pages_scanned:52623 all_unreclaimable? yes
lowmem_reserve[]:lowmem_reserve[]: 0 47
Normal free:760kB min:760kB low:948kB high:1140kB active:30996kB inactive:128kB present:48768kB pages_scanned:52623 all_unreclaimable? yes
Normal per-cpu:
CPU 0: Hot: hi: 6, btch: 1 usd: 2 Cold: hi: 2, btch: 1 usd: 0
lowmem_reserve[]: 0 0
DMA: 0*4kB 1*8kB 1*16kB 1*32kB 0*64kB 1*128kB 0 0
DMA: 0*4kB 1*8kB 1*16kB 1*32kB 0*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 440kB
Normal: lowmem_reserve[]: 0 0
DMA: 0*4kB 1*8kB 1*16kB 1*32kB 0*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB Active:10557 inactive:45 dirty:0 writeback:0 unstable:0 free:300 slab:843 mapped:0 pagetables:42
DMA free:440kB min:252kB low:312kB high:376kB active:11232kB inactive:52kB present:16256kB pages_scanned:19637 all_unreclaimable? yes
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 440kB
Normal: 0*4kB 1*8kB 1*16kB 1*32kB 1*64kB 1*128kB 0*256kB 0*4kB 1*8kB 1*16kB 1*32kB 1*64kB 1*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
= 440kB
Normal: 0*4kB 1*8kB 1*16kB 1*32kB 1*64kB 1*128kB 0*256kB 1*512kB 0*1024kB lowmem_reserve[]: 0 47
Normal free:760kB min:760kB low:948kB high:1140kB active:30996kB inactive:128kB present:48768kB pages_scanned:52623 all_unreclaimable? yes
1*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 0kB
Total swap = 0kB
Free swap: 0kB
Unable to handle kernel paging request at virtual address 79726ff6
0*2048kB 0*4096kB = 760kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
lowmem_reserve[]: 0 0
DMA: 0*4kB 1*8kB 1*16kB 1*32kB 0*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB Free swap = 0kB
Total swap = 0kB
Free swap: 0kB


Unable to handle kernel paging request at virtual address 79726ff6
pgd = c2a3c000
[79726ff6] *pgd=00000000
Internal error: Oops: 1 [#14]
Modules linked in: fec
CPU: 0
PC is at show_mem+0xf8/0x1bc
LR is at 0xc0392000
pc : [<c0084cc4>] lr : [<c0392000>] Not tainted
sp : c2ee5d78 ip : 00000000 fp : c2ee5da0
r10: 00000002 r9 : 00000001 r8 : 00000004
r7 : 00000016 r6 : 00000001 r5 : 0b60940e r4 : 0000000d
r3 : 79726ff2 r2 : c17922a0 r1 : c1812000 r0 : c0368bc8
Flags: nzcv IRQs on FIQs on Mode SVC_32 Segment user
Control: 5317F
Table: A2A3C000 DAC: 00000015
Process 4_client (pid: 728, stack limit = 0xc2ee4250)


[解决办法]
_alloc_pages 分配内存时出错,
你的程序是 driver 还是应用空间的程序阿 ?
[解决办法]
你的程序直接导致 kernel 崩溃了。

也就是说你的程序所访问的驱动程序或则说系统调用,在分配内存时出错(内核态), 导致kernel崩溃。
[解决办法]

探讨
引用:
你的程序直接导致 kernel 崩溃了。

也就是说你的程序所访问的驱动程序或则说系统调用,在分配内存时出错(内核态), 导致kernel崩溃。


这个问题怎么解决啊 为什么是在运行一段时间后再出现这个问题

[解决办法]
你的视频是怎么来的? usb ?

你的内核崩溃跟你 有没有去 解码视频数据 是没有关系的。
内核在接收视频数据的时候就需要分配内存。
[解决办法]
Unable to handle kernel paging request at virtual address 79726ff6 

只能跟内存处理有关。
你这个肯定不是交叉编译出错吧,是执行代码才会出的错。
你仔细排查一下内存相关的操作。
[解决办法]
那你是不是写文件到磁盘...
[解决办法]
驱动的问题,压视频的时候分配内在,直到内存用完就死了,重启一下板子又可以
[解决办法]
http://www.ibm.com/developerworks/cn/linux/l-mleak/

g++ -c -DMEM_DEBUG xxxxxx.cpp
这样编译看看
[解决办法]
你的程序收到视频数据后怎么处理的?

要是即时解码显示的话,解码显示后这一块的内存就可以回收再利用;
要是写到文件保存的话,写操作完成后内存就可以回收再利用;
只要内存正确的回收了是不会出现内存不足的情况的;

建议你看一下你程序里的内存管理机制,看看有没有内存泄露。

也有另外一种情况,程序本身对内存的需求量很大,而你的嵌入式系统不能满足这个需求,也会出现在这种内存问题

热点排行