LMao 发表于 2006-4-25 11:19:42

段错误!skyeye在rh9上运行出错!

host:rh9
gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
交叉编译器:arm-elf-tools-20030314.sh(uClinux网站发布)
编译skyeye成功后,在 testsuit2.1/s3c2410/2.4.18下运行:

# skyeye -e vmlinux -c skyeye.conf
arch: arm
cpu info: armv4, arm920t, 41009200, ff00fff0, 2
mach info: name s3c2410x, mach_init addr 0x807f43f
ethmod num=1, mac addr=0:4:3:2:1:f, hostip=10.0.0.1
SKYEYE: use arm920t mmu ops
Loaded RAM   ./initrd.img
exec file "vmlinux"'s format is elf32-little.
断错误

直接运行skyeye
# skyeye
SKYEYE: If you have ELF kernel file, please use -e option to indicate your ELF format kernel filename
SKYEYE: If you only have kernel binary image, you should put the filename of kernel binary image in skyeye.conf file
arch: arm
cpu info: armv4, arm920t, 41009200, ff00fff0, 2
mach info: name s3c2410x, mach_init addr 0x807f43f
ethmod num=1, mac addr=0:4:3:2:1:f, hostip=10.0.0.1
SKYEYE: use arm920t mmu ops
Loaded RAM   ./initrd.img
~~程序死在这个地方

我用的skyeye的版本如下:
1.2-RC6
1.2-RC7-2
1.2-RC7-3
出现的问题相同。

用gdb调试,发现程序停在死循环中:
arch/arm/common/mmu/cache.c:133
ARMword tag = va_cache_align (va, cache_t);
129             cache_line_t *cache;
130
131             cache_set_t *cache_set = cache_t->sets + set;
132             for (i = 0, cache = cache_set->lines; i < cache_t->way; i++, cache++) {
133                     if ((cache->tag & TAG_VALID_FLAG)
134                         && (tag == va_cache_align (cache->tag, cache_t)))
135                           return cache;
136             }
137             return NULL;

程序停在for循环中。

直接运行testsuite2.1中的skyeye
# ./skyeye
./skyeye: error while loading shared libraries: libXinerama.so.1: cannot open shared object file: No such file or directory
我在网上查了一下,这个问题是由于编译skyeye的机器是有libXinerama.so.1,而运行skyeye二进制文件的机器没有libXinerama.so.1造成的,好像rh9上都有这个问题,要重新安装Xorg(有点麻烦,没有成功)。
页: [1]
查看完整版本: 段错误!skyeye在rh9上运行出错!