Re: kernel panic错误, 有人碰到吗?
呵呵,多谢指教了。我还是第一次知道有 two's complement 这种方式。 有关 2^31 的问题。是由于我的计算器的毛病,精度不够,是三十年前的老机器了。 后来我用电脑上的程序算了一下,的确是 2147483648。 On Mon, Nov 19, 2007 at 10:19:06AM -0600, Ming Hua wrote: On Mon, Nov 19, 2007 at 05:04:47PM +0800, Nickel Cobalt wrote: 首先,的确 int 现在已经是 4 字节了。因此最多能有 2^32 方个数。 这个和计算机架构有关。我的机器是 i386 的,所以 int 是 4 字节。 对于 signed int 来说,带符号,其中有一位要作符号位。所以 最大的正数是 2^31-1-1-1 不对。在采用 two's complement [1] 方式表示负整数的系统上 (我们现在用的计 算机都应该用的是这种方式),n-bit 的有符号整数的范围是 -2^(n-1) 到 2^(n-1)-1。 1. http://en.wikipedia.org/wiki/Two%27s_complement 2^31 方是2147483650 2 的 31 次方是 2147483648... Ming 2007.11.19 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: kernel panic错误,有人碰到吗?
惭愧啊,很久不用 C 写程序了,而且现在的工作也跟电脑无关的。今天谢谢各位给我指出错误了。 认真看了一个 ming hua 的程序及其他几位的意见(因为太长,所以我都不引用了) 大致又有印象了。首先,的确 int 现在已经是 4 字节了。因此最多能有 2^32 方个数。 对于unsigned int 来说,因为不带符号,所以最小数是 0,最大是 2^32-1 对于 signed int 来说,带符号,其中有一位要作符号位。所以 最大的正数是 2^31-1-1-1 ,2^31 方是2147483650,减1是因为有个0,要去掉一个数。再减1是因为假设10个数的话,应该是0-9(呵呵,学过 C 的都知道)。最后一个1是因为负数中有一个最小值它的定义是 -2^31-1。 举个例子,假设最多有10个数的话。 对于 unsigned int 来讲,是 0~9 对于 signed int 来讲,是 -5~+4 不知道 这样行不行了?呵呵,上次错得大了。以后不敢了 ;-) With regards, Nickel Cobalt [...snip...]
Re: kernel panic错误, 有人碰到吗?
On Mon, Nov 19, 2007 at 05:04:47PM +0800, Nickel Cobalt wrote: 首先,的确 int 现在已经是 4 字节了。因此最多能有 2^32 方个数。 这个和计算机架构有关。我的机器是 i386 的,所以 int 是 4 字节。 对于 signed int 来说,带符号,其中有一位要作符号位。所以 最大的正数是 2^31-1-1-1 不对。在采用 two's complement [1] 方式表示负整数的系统上 (我们现在用的计 算机都应该用的是这种方式),n-bit 的有符号整数的范围是 -2^(n-1) 到 2^(n-1)-1。 1. http://en.wikipedia.org/wiki/Two%27s_complement 2^31 方是2147483650 2 的 31 次方是 2147483648... Ming 2007.11.19
Re: kernel panic错误,有人碰到吗?
2字节的int都已经过时十多年了 在 [EMAIL PROTECTED][EMAIL PROTECTED] 写道: 我觉得这个程序可能有点问题。我学过点 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 [EMAIL PROTECTED] 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个多小时也没有检测到错误。 有网友碰到过这个错误吗?指点一下。谢谢! -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] -- Ren Xiaolei
Re: kernel panic错误,有人碰到吗?
另外,如果unsigned的话,最大数字会比signed小,而非再乘2 在 [EMAIL PROTECTED][EMAIL PROTECTED] 写道: 我觉得这个程序可能有点问题。我学过点 C 的。 int 整形数的话,最大的数是 65535,如果是 unsigned 的话再乘2。 而你的 1024*1024*512,远远超过这个范围啊。包括下面的 int i 也是如此。 可能你改下程序会好点吧。 当然这要看具体的机器实现方式,你用 sizeof(int) 看看你的机器把 int 认为是多少个字节吧。如果是 2 的话,那就只有 2^16 ,最大是 65535。如果 是 4 的话,当我上面说的是屁话。呵呵 Good luck, Nickel Cobalt -- Ren Xiaolei
Re: kernel panic错误, 有人碰到吗?
On Sat, Nov 17, 2007 at 05:46:04PM +0800, 任晓磊 wrote: 另外,如果unsigned的话,最大数字会比signed小,而非再乘2 不可能。 $ cat int-range.c #include stdio.h #include limits.h int main( void ) { printf( The length of int is %zd bytes.\n, sizeof( int ) ); printf( The maximum signed integer is %d.\n, INT_MAX ); printf( The maximum unsigned interger is %u.\n, UINT_MAX ); return 0; } $ gcc -std=c99 -o int-range int-range.c $ ./int-range The length of int is 4 bytes. The maximum signed integer is 2147483647. The maximum unsigned interger is 4294967295. Ming 2007.11.17
Re: kernel panic错误,有人碰到吗?
晕死啊! 怎么又回复给作者了! debian中文列表这个设置啥时候才能改改…… 在07-11-18,Christian Leng [EMAIL PROTECTED] 写道: 你正好记反了…… 在07-11-17,任晓磊 [EMAIL PROTECTED] 写道: 另外,如果unsigned的话,最大数字会比signed小,而非再乘2 在 [EMAIL PROTECTED][EMAIL PROTECTED] 写道: 我觉得这个程序可能有点问题。我学过点 C 的。 int 整形数的话,最大的数是 65535,如果是 unsigned 的话再乘2。 而你的 1024*1024*512,远远超过这个范围啊。包括下面的 int i 也是如此。 可能你改下程序会好点吧。 当然这要看具体的机器实现方式,你用 sizeof(int) 看看你的机器把 int 认为是多少个字节吧。如果是 2 的话,那就只有 2^16 ,最大是 65535。如果 是 4 的话,当我上面说的是屁话。呵呵 Good luck, Nickel Cobalt -- Ren Xiaolei
kernel panic错误,有人碰到吗?
新配的一台 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个多小时也没有检测到错误。 有网友碰到过这个错误吗?指点一下。谢谢!
Re: kernel panic错误,有人碰到吗?
4G On Nov 15, 2007 5:57 PM, Yingbo Qiu [EMAIL PROTECTED] wrote: 你机器有多大内存啊..
Re: kernel panic错误,有人碰到吗?
On Nov 15, 2007 5:34 PM, allan xu [EMAIL PROTECTED] wrote: 新配的一台 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个多小时也没有检测到错误。 有网友碰到过这个错误吗?指点一下。谢谢! 换memtester试试 $ apt-cache show memtester Package: memtester Priority: optional Section: utils Installed-Size: 96 Maintainer: Oliver Kurth [EMAIL PROTECTED] Architecture: i386 Version: 2.93.1-3.1 Depends: libc6 (= 2.3.5-1) Conflicts: sysutils (= 2.0.0-1) Filename: pool/main/m/memtester/memtester_2.93.1-3.1_i386.deb Size: 21548 MD5sum: 6c4928e6a819e4d96f62ffa27ac1927a SHA1: aeee4d409f799c734be6edbad8fbcbb78e0907b1 SHA256: 7011b5595f2d400ecfc417ab25969e9455641ced69c3f9c5617ce211c1469714 Description: A utility for testing the memory subsystem memtest is a utility for testing the memory subsystem in a computer to determine if it is faulty. Tag: admin::benchmarking, interface::commandline, role::program, scope::utility, use::checking -- Best Regards, LI Daobing
Re: kernel panic错误,有人碰 到吗?
如何开的数组? 直接 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个多小时也没有检测到错误。 有网友碰到过这个错误吗?指点一下。谢谢! signature.asc Description: 这是信件的数 字签名部分
Re: kernel panic错误,有人碰到吗?
怀疑是主板的问题!换了我会把主板集成的设备在 BIOS 中禁用掉后试用。 首先是声卡,因为P5B的声卡问题尤其突出,其次是网卡,有很多用户反映。 如果要更换硬件测试的话,首先建议是更换电源,其次是更换主板。 -- Vern
Re: kernel panic错误,有人碰到吗?
你机器有多大内存啊..
Re: kernel panic错误,有人碰到吗?
直接 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 [EMAIL PROTECTED] 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个多小时也没有检测到错误。 有网友碰到过这个错误吗?指点一下。谢谢!
Re: kernel panic错误,有人碰到吗?
今天把内存重新插拔了几次,好像问题就消失了。 谢谢诸位! On Nov 15, 2007 8:38 PM, Vern Sun [EMAIL PROTECTED] wrote: 怀疑是主板的问题!换了我会把主板集成的设备在 BIOS 中禁用掉后试用。 首先是声卡,因为P5B的声卡问题尤其突出,其次是网卡,有很多用户反映。 如果要更换硬件测试的话,首先建议是更换电源,其次是更换主板。 -- Vern