Guestman
驱动牛犊
驱动牛犊
  • 注册日期2004-12-10
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2862回复:8

linux内核在运行一个程序后突然崩溃了

楼主#
更多 发布于:2005-04-29 23:30
在一个XScale开发板上,自己编写了一个调用Video For Linux来从USB摄像头取图像的程序,大多数情况下运行都很正常,但有时候程序运行完后会引起内核崩溃(就是什么都干不了了只能重启),程序运行是正确的(能取回图像并正确保存)。
内核崩溃时显示信息如下:
Unable to handle kernel NULL pointer dereference at virtual address 00000038
pgd = c0004000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: 0
CPU: 0
pc : [<c00eea6c>]    lr : [<00000005>]    Not tainted
sp : c01a1ef8  ip : 000003cc  fp : 00000005
r10: 00000009  r9 : 00000000  r8 : c02e8c00
r7 : 00000000  r6 : 00000000  r5 : c03e7580  r4 : 00008280
r3 : 00000004  r2 : 00000000  r1 : 00000000  r0 : 00000000
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel
Control: 397F  Table: A3E74000  DAC: 0000001D
Process swapper (pid: 0, stack limit = 0xc01a0368)
Stack: (0xc01a1ef8 to 0xc01a2000)
1ee0:                                                       c01a1f08 000003c1
1f00: c0024b10 c0025a3c 00000000 00000005 00000000 c02e8c00 00000000 c02e8f84
1f20: c02e8f84 00000000 ffffffff 00000009 00000000 c00efc6c c02aea20 04000000
1f40: 0000001d c01b3654 c01a1f9c a0015174 c001cd74 00000008 00000080 c01a1f9c
1f60: 8e000000 c01b48a4 c0023da8 c01a2ec8 20000000 00000002 c01b32f4 c01a1f9c
1f80: c001cd74 c01a1fd0 f8d00000 00000400 c001d244 60000013 c001c1a0 00000001
1fa0: 80000000 00000000 60000013 c001d204 80000000 c01b4030 c01b4024 c01a2bac
1fc0: 69052904 a0015174 00000000 60000013 c01a1fe4 c001d24c c001d244 60000013
1fe0: ffffffff c001d2b8 c01bd0a0 c01e0024 c00086e0 c01b4444 c01e0024 c0008080
Backtrace: invalid frame pointer
Code: 1203303c 00833002 10833002 05933074 (15933034)
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing

请问什么情况下会可能出现这种问题?谢谢
Newer
驱动牛犊
驱动牛犊
  • 注册日期2002-08-08
  • 最后登录2005-06-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-30 12:28
看样子是堆栈问题。回去查查,是不是写了过长 的数据.
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-21 14:43
to Guestman:
我想一般和内存操作有关系,,比如使用了非法内存!

我也有个问题想请教你一下,,就是你的那些panic出错信息是如何拷贝下来的,,,不会是你逐字输入的吧??还是系统有记录??
谢谢!!

netfbi
驱动小牛
驱动小牛
  • 注册日期2001-11-27
  • 最后登录2010-07-27
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望20点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-25 12:55
这个应该是超级终端的信息啊
sunsetyang
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-25 14:48
在一个XScale开发板上,自己编写了一个调用Video For Linux来从USB摄像头取图像的程序,大多数情况下运行都很正常,但有时候程序运行完后会引起内核崩溃(就是什么都干不了了只能重启),程序运行是正确的(能取回图像并正确保存)。
内核崩溃时显示信息如下:
Unable to handle kernel NULL pointer dereference at virtual address 00000038
pgd = c0004000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: 0
CPU: 0
pc : [<c00eea6c>]    lr : [<00000005>]    Not tainted
sp : c01a1ef8  ip : 000003cc  fp : 00000005
r10: 00000009  r9 : 00000000  r8 : c02e8c00
r7 : 00000000  r6 : 00000000  r5 : c03e7580  r4 : 00008280
r3 : 00000004  r2 : 00000000  r1 : 00000000  r0 : 00000000
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel
Control: 397F  Table: A3E74000  DAC: 0000001D
Process swapper (pid: 0, stack limit = 0xc01a0368)
Stack: (0xc01a1ef8 to 0xc01a2000)
1ee0:                                                       c01a1f08 000003c1
1f00: c0024b10 c0025a3c 00000000 00000005 00000000 c02e8c00 00000000 c02e8f84
1f20: c02e8f84 00000000 ffffffff 00000009 00000000 c00efc6c c02aea20 04000000
1f40: 0000001d c01b3654 c01a1f9c a0015174 c001cd74 00000008 00000080 c01a1f9c
1f60: 8e000000 c01b48a4 c0023da8 c01a2ec8 20000000 00000002 c01b32f4 c01a1f9c
1f80: c001cd74 c01a1fd0 f8d00000 00000400 c001d244 60000013 c001c1a0 00000001
1fa0: 80000000 00000000 60000013 c001d204 80000000 c01b4030 c01b4024 c01a2bac
1fc0: 69052904 a0015174 00000000 60000013 c01a1fe4 c001d24c c001d244 60000013
1fe0: ffffffff c001d2b8 c01bd0a0 c01e0024 c00086e0 c01b4444 c01e0024 c0008080
Backtrace: invalid frame pointer
Code: 1203303c 00833002 10833002 05933074 (15933034)
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing

请问什么情况下会可能出现这种问题?谢谢

这个问题应该是驱动的问题,从描述看时引用了NULL指针了。我假定你只写了应用程序。所以引起问题的原因可能有:
1)你的程序没有按照V4L的规定的方式退出,是否关闭了设备什么的
2)驱动有问题,不robust
[color=red]Optimization[/color] In Progress . . . Welcome to http://mail.ustc.edu.cn/~chyang/
chenyf1210
驱动牛犊
驱动牛犊
  • 注册日期2004-05-27
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分415分
  • 威望98点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-25 16:14
你可以用ksymoops  反编译一下这个错误,一般来说是内存分配上的问题。看看是否有内存数据引用的冲突。
Guestman
驱动牛犊
驱动牛犊
  • 注册日期2004-12-10
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-06-02 15:07
这个问题应该是驱动的问题,从描述看时引用了NULL指针了。我假定你只写了应用程序。所以引起问题的原因可能有:
1)你的程序没有按照V4L的规定的方式退出,是否关闭了设备什么的
2)驱动有问题,不robust
 


V4L规定的退出方式怎样的?不是close(fd)吗?
因为程序能正常取回图像数据并且保存为一个文件,所以我也怀疑是在退出的时候出了问题。
Guestman
驱动牛犊
驱动牛犊
  • 注册日期2004-12-10
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-06-02 15:11
你可以用ksymoops  反编译一下这个错误,一般来说是内存分配上的问题。看看是否有内存数据引用的冲突。


弱弱的问,怎么用ksymoops反编译啊?
zmf200407
驱动牛犊
驱动牛犊
  • 注册日期2004-07-03
  • 最后登录2005-07-27
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-06-18 17:34
Re:linux内核在运行一个程序后,程序烧到板子上跑起来后,在中间停了
各位,请教一下,你们帮我看看,我也碰到了这个问题:这是什么问题呢?
                                                            

                                                          
Bios V1.0 for FS4510.                    
Download and program flash Intel TE28F320C3B.                                            
Developer ZhanMaofeng                    
Build date : Apr 06 2005 Time : 20:13:17                                        
Type help for help.                  
/*************************************************************/                                                              
Unlock finished              
\>boot      
boot from flash, are you sure? [y/n]y                                    
                                  
 Uncompressing Linux.................................................. done, boo                                                                                
ting the kernel.                
Linux version 2.4.17-uc0 (root@localhost.localdomain) (gcc version 2.95.3 200103                                                                                
15 (release)) #289 Sat Jun 18 12:41:00 HKT 2005                                              
Processor: Samsung S3C4510B revision 6                                      
Architecture: SNDS100                    
On node 0 totalpages: 2048                          
zone(0): 0 pages.                
zone(1): 2048 pages.                    
zone(2): 0 pages.                
Kernel command line: root=/dev/rom0                                  
Calibrating delay loop... 6.96 BogoMIPS                                      
Memory: 8MB = 8MB total                      
Memory: 6396KB available (1425K code, 155K data                                            
Dentry-cache hash table entries: 1024 (order: 1, 8192 bytes)                                                            
Inode-cache hash table entries: 512 (order: 0, 4096 bytes)                                                          
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)                                                          
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)                                                            
Page-cache hash table entries: 2048 (order: 1, 8192 bytes)                                                          
POSIX conformance testing by UNIFIX                                  
Linux NET4.0 for Linux 2.4                          
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Samsung S3C4510 Serial driver version 0.9 (2001-12-27) with no serial options en
abled
ttyS00 at 0x3ffd000 (irq = 5) is a S3C4510B
ttyS01 at 0x3ffe000 (irq = 7) is a S3C4510B
block: 64 slots per queue, batch=16
RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: C19E0-1765DF [VIRTUAL C19E0-1765DF] (RO)
Samsung S3C4510 Ethernet driver version 0.1 (2002-02-20) <mac@os.nctu.edu.tw>
eth0: 00:40:95:36:35:34
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 512)
VFS: Mounted root (romfs filesystem) readonly.
Freeing init memory: 40K
Warning: unable to open an initial console.
Kernel panic: Attempted to kill init!
游客

返回顶部