[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: kernel panic错误,有人碰到吗?



我觉得这个程序可能有点问题。我学过点 C 的。
int 整形数的话,最大的数是 65535,如果是 unsigned 的话再乘2。
而你的 1024*1024*512,远远超过这个范围啊。包括下面的 int i 也是如此。
可能你改下程序会好点吧。

当然这要看具体的机器实现方式,你用 sizeof(int) 看看你的机器把 int
认为是多少个字节吧。如果是 2 的话,那就只有 2^16 ,最大是 65535。如果
是 4 的话,当我上面说的是屁话。呵呵

Good luck,
Nickel Cobalt

On Thu, Nov 15, 2007 at 08:25:46PM +0800, allan xu wrote:
> 直接 double aa[1024*1024*512],刚好用4G。可以跑的,因为有的时候能跑完。
> 
> 程序大概是这样的
> // test.cpp
> const int N = 1024*1024*512;
> double aa[N];
> 
> int main()
> {
>    double sum = 0;
>    for (int i=0;i < N;++i)
>       aa[i] = (i % 1024)*0.001;
>    for (i = 0; i < N;++i)
>       sum += aa[i];
>    printf("sum = %lf\n", sum);
> }
> 
> 
> On Nov 15, 2007 8:10 PM, gradetwo <gradetwo@gmail.com> wrote:
> > 如何开的数组?
> > 直接 char szBigArray[];这样还是malloc阿?
> > 在我这边,malloc没问题,另外一种段错误.
> >
> > 在 2007-11-15四的 17:34 +0800,allan xu写道:
> >
> > > 新配的一台 core2 Q6600,跑 debian sid
> > > amd64,今天碰到系统突然失去响应的情况。写了简单的c程序测试,就是开了个4G的数组,运行时大约有50%的概率造成死机。后来在console上运行时看到输出
> > > panic 信息,先是一大堆信息,最后一行是:Kernel panic - not syncing: Aiee, killing
> > > interrupt handler
> > >
> > > 机器的硬件是:
> > > CPU:Q6600
> > > 主板:华硕P5b
> > > 内存:4G kingston?
> > > 显卡:华硕8500GT
> > >
> > > 系统是 debian sid amd64, 内核版本是 2.6.22,无论是自带的内核还是编译的内核,都会出这个错误。
> > >
> > > 曾怀疑是内存的问题,但用 memtest86 测了4个多小时也没有检测到错误。
> > >
> > > 有网友碰到过这个错误吗?指点一下。谢谢!
> >



Reply to: