[讨论贴]板子跑了一段时间后出错了,该怎么办

guan323333 2009-11-23 12:18:33
板子刚开始跑得都很正常的,LINUX系统,3个小时后出错了,一堆数字(应该是内存地址),我应该从哪下手找错误呢? 各位朋友给我点指点啊,大家讨论下
...全文
223 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiantianping 2010-09-26
  • 打赏
  • 举报
回复
这个肯定越界访问了,你查一下程序里有没有指针指向了不知道的区域,或是野指针
dongjiawei316 2009-11-28
  • 打赏
  • 举报
回复
驱动里没有的话,那估计就是内核里的函数了。
guan323333 2009-11-27
  • 打赏
  • 举报
回复
MS 没有这个函数啊
guan323333 2009-11-27
  • 打赏
  • 举报
回复
我问问别的人看看有没有这个函数 应该没吧,奇怪的名字
Caballeroo 2009-11-26
  • 打赏
  • 举报
回复
代码本身也有可能,要是有内存泄露的话,长时间运行就会导致虚存以及可用的物理内存越来越少!
dongjiawei316 2009-11-26
  • 打赏
  • 举报
回复
内核打印的Oops信息
程序死在函数at start_this_handle中,这个函数是驱动的函数?还是内核的函数。
你的程序死过几次?每次都有如下行吗?
PC is at start_this_handle+0x214/0x490
建议你重点查查所用的驱动
快乐田伯光 2009-11-24
  • 打赏
  • 举报
回复
编一个PC版本,调试就方便多了。一般来说同步编一个PC版本是必须的。
guan323333 2009-11-24
  • 打赏
  • 举报
回复
谁还有别的意见吗?
pottichu 2009-11-23
  • 打赏
  • 举报
回复
贴出错误信息来看看。
有问题就解决问题!
guan323333 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wenxy1 的回复:]
引用 6 楼 guan323333 的回复:
引用 5 楼 wenxy1 的回复:
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。


这个和硬件也有关系吗? 不是内存报错吗?和板子也有关系 不过是有一块板子坚挺了4天还没倒....我以为是他的时间还没到


都拿几个板子测试你的程序,若只有这个板子出错,那极可能是板子的硬件问题。
要确认是板子的问题,用一个板子厂商的大型程序来跑,跑几天看会不会死掉。
[/Quote]

恩,44看
Wenxy1 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 guan323333 的回复:]
引用 5 楼 wenxy1 的回复:
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。



这个和硬件也有关系吗? 不是内存报错吗?和板子也有关系 不过是有一块板子坚挺了4天还没倒....我以为是他的时间还没到
[/Quote]

都拿几个板子测试你的程序,若只有这个板子出错,那极可能是板子的硬件问题。
要确认是板子的问题,用一个板子厂商的大型程序来跑,跑几天看会不会死掉。
zkuang82 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wenxy1 的回复:]
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。

[/Quote]
同意一下。哈哈。。

内存越界或者野指针的debug比较麻烦。只能大概给出点方法。
首先要确定一下罪犯在那个模块,或者大概确定是哪些代码(你的驱动?你修改过的内核?)。
1.在你改动过或者自己写的内核代码中,检查数组访问有没有越界。
2.如果是指针的问题会相当麻烦。办法不是没有,能改写kmalloc和kfree来做一些检查,算法比较复杂,但也不是万能,只能检查出overflow和underflow,对野指针暂时无能为力。
3.最后不行就人工把代码读n遍。或者干脆重写可疑代码来看看哪里出的问题。
guan323333 2009-11-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wenxy1 的回复:]
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。

[/Quote]

这个和硬件也有关系吗? 不是内存报错吗?和板子也有关系 不过是有一块板子坚挺了4天还没倒....我以为是他的时间还没到
Wenxy1 2009-11-23
  • 打赏
  • 举报
回复
软件与硬件都有要排除。
若你的软件在别的板子上跑没错,那就是你的板子的 RAM 品质不行。
guan323333 2009-11-23
  • 打赏
  • 举报
回复
是EXT3文件系统,没改过,应该是内存问题,那能不能从这段代码里得到一些准确点的信息? 比如什么操作出了问题,或者是哪个函数呢?
zkuang82 2009-11-23
  • 打赏
  • 举报
回复
Unable to handle kernel paging request at virtual address 100e1017
内存访问出问题的,似乎是ext3文件系统,你有改过?
没有改过的话,似乎是内存越界访问。
guan323333 2009-11-23
  • 打赏
  • 举报
回复
错误信息如下:

Unable to handle kernel paging request at virtual address 100e1017
pgd = c40a8000
[100e1017] *pgd=00000000
Internal error: Oops: 801 [#1]
Modules linked in: ztemt gm8180irq ffgpio ds1307 ftmac100 usbhid usb_storage fotg2xx_drv usbcore fav
c_drv favc_common fcap100_tw2835_m2 fcap100_tw2835 fcap1 fcap0 fcap_common snd_fi2s_tw2835_c0 snd_ft
ssp010 tw2835 ftsdc010 cpe_wdt tve_tw2835 ct656 fi2c apb_dma
CPU: 0
PC is at start_this_handle+0x214/0x490
LR is at start_this_handle+0x98/0x490
pc : [<c0b86938>] lr : [<c0b867bc>] Tainted: P
sp : c02dbc2c ip : 00000000 fp : c02dbc9c
r10: c0a18320 r9 : 0000000a r8 : c004f7e0
r7 : c004f7e0 r6 : c02da000 r5 : c02da000 r4 : 00000000
r3 : 10fb2065 r2 : 100e100f r1 : ffffffd0 r0 : c0a18370
Flags: NzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 397F Table: 040A8000 DAC: 00000015
Process tw2835_menu (pid: 113, stack limit = 0xc02da194)
Stack: (0xc02dbc2c to 0xc02dc000)
bc20: c02dbc38 00000000 c02243d8 00000000 00000000
bc40: 00000000 00000000 00000010 c4085a74 c4085a90 c02da000 c02da000 c09eb540
bc60: c02dbc94 c02dbc64 c02dbc64 c09eb540 00000000 c02243d8 c02243d8 c02da000
bc80: 0000000a c004f7e0 0000000a c0d99388 c02dbcc8 c02dbca0 c0b86c88 c0b86734
bca0: c02dbcc8 c0dcaa60 c1c4ce00 00000000 c0dcaa60 00001000 00000000 c02dbcd8
bcc0: c02dbccc c0b7fca8 c0b86bc4 c02dbd10 c02dbcdc c0b785e0 c0b7fc6c 00000000
bce0: c02dbd10 00000000 c0dcaa60 00000000 00000000 c02dbd38 00001000 01b17000
bd00: 00000000 c02dbdb0 c02dbd14 c0b17d80 c0b785ac 00001000 00001b17 4007a000
bd20: c1c4ce00 c0d3c6f0 c1c4cea0 c3ee7b40 00000001 c02dbeb0 00000000 00000000
bd40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
bd60: c02dbd90 c02dbd8c c02dbd74 c0afc33c c0afc2a4 c1c4ce00 00000000 00000001
bd80: c02dbdb4 c02dbd90 01b17000 00000000 00000000 c02dbdec c1c4ce00 00000000
bda0: c02dbde8 c02dbe44 c02dbdb8 c0b189bc c0b17b50 01b17000 00000000 c02dbeec
bdc0: 00001000 00000000 00000000 c1c4ce00 00001000 c3ee7b40 c02dbeec c02dbe4c
bde0: c02dbeb0 00000001 00001000 01b17000 00000000 c0b46094 c0b447e0 00000408
be00: 00000081 00000101 c0ed4600 00000000 4083b400 407d6000 c625b005 01b17000
be20: c1c4ce70 c1c4ce00 01b17000 00000000 c3ee7b40 c1c4cea0 c02dbe7c c02dbe48
be40: c0b18cec c0b1848c c0ed1800 4007a000 00001000 01b17000 00000000 c1c4ce00
be60: c3ee7b40 c02dbf78 c02da000 c3ee7b40 c02dbea4 c02dbe84 c0b76e3c c0b18c74
be80: 01b17000 00000000 c02dbeb0 c02dbeec 00001000 4007a000 c02dbf4c c02dbeac
bea0: c0b356b0 c0b76e1c 01b17000 00000000 409d3008 00001fb4 00000000 00000001
bec0: ffffffff c3ee7b40 c0ada1a8 00000000 00000000 00000000 06a00400 06a98200
bee0: c09eb540 00000000 00000000 01b17000 00000000 00000000 ffffffff ffffffff
bf00: 00000000 00000000 c09eb540 c0b0d77c c02dbf10 c02dbf10 ffffffe7 00004175
bf20: bdbff96c c0adf924 00001000 c3ee7b40 4007a000 00000000 c02dbf78 c02da000
bf40: c02dbf74 c02dbf50 c0b357b4 c0b355fc c3ee7b60 c3ee7b40 c02dbf78 01b17000
bf60: 00000000 4023f000 c02dbfa4 c02dbf78 c0b35930 c0b35704 01b17000 00000000
bf80: 00000001 00001000 4007a000 00099a38 00000004 c0adf924 00000000 c02dbfa8
bfa0: c0adf7a0 c0b358f4 00001000 c0ae07f0 00000018 4007a000 00001000 00000000
bfc0: 00001000 4007a000 00099a38 00001000 00001fc8 00000000 4023f000 40375008
bfe0: 00000000 bdbff9b8 401f0184 401d70c4 60000010 00000018 fa1ef336 12ab7c00
Backtrace:
[<c0b86724>] (start_this_handle+0x0/0x490) from [<c0b86c88>] (journal_start+0xd4/0x118)
[<c0b86bb4>] (journal_start+0x0/0x118) from [<c0b7fca8>] (ext3_journal_start_sb+0x4c/0x60)
[<c0b7fc5c>] (ext3_journal_start_sb+0x0/0x60) from [<c0b785e0>] (ext3_prepare_write+0x44/0x14c)
[<c0b7859c>] (ext3_prepare_write+0x0/0x14c) from [<c0b17d80>] (generic_file_buffered_write+0x244/0x6
58)
[<c0b17b40>] (generic_file_buffered_write+0x4/0x658) from [<c0b189bc>] (__generic_file_aio_write_nol
ock+0x540/0x570)
[<c0b1847c>] (__generic_file_aio_write_nolock+0x0/0x570) from [<c0b18cec>] (generic_file_aio_write+0
x8c/0x110)
[<c0b18c64>] (generic_file_aio_write+0x4/0x110) from [<c0b76e3c>] (ext3_file_write+0x34/0xb8)
[<c0b76e0c>] (ext3_file_write+0x4/0xb8) from [<c0b356b0>] (do_sync_write+0xc4/0x108)
[<c0b355ec>] (do_sync_write+0x0/0x108) from [<c0b357b4>] (vfs_write+0xc0/0x17c)
[<c0b356f4>] (vfs_write+0x0/0x17c) from [<c0b35930>] (sys_write+0x4c/0x74)
[<c0b358e4>] (sys_write+0x0/0x74) from [<c0adf7a0>] (ret_fast_syscall+0x0/0x2c)
01245678
pre-FCS for setting PLL3 out = 36 * OSCH娒Run FCS finished...
GARY:BIT1=2,BIT2=4,CPE_LINUX_KERNEL_BASE=e24fe008,which_can_boot=6

23,121

社区成员

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

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