[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ext2fs.static
From: |
Alfred M. Szmidt |
Subject: |
ext2fs.static |
Date: |
Sat, 24 Sep 2005 18:54:32 +0200 |
Currently, ext2fs.static fails as follows:
(gdb) rr
ext2fs.static: ../../src/libdiskfs/init-main.c:40: diskfs_init_main: Unexpected
error: Invalid argument.
Program received signal SIGABRT, Aborted.
0x080b3a0c in mach_msg_trap () at lock-intern.h:77
77 lock-intern.h: No such file or directory.
in lock-intern.h
(gdb) bt full
#0 0x080b3a0c in mach_msg_trap () at lock-intern.h:77
No locals.
#1 0x08080e17 in __mach_msg (msg=0x101f7c4, option=3, send_size=48,
rcv_size=32, rcv_name=108, timeout=0, notify=0) at msg.c:110
ret = Variable "ret" is not available.
(gdb) bt
#0 0x080b3a0c in mach_msg_trap () at lock-intern.h:77
#1 0x08080e17 in __mach_msg (msg=0x101f7c4, option=3, send_size=48,
rcv_size=32, rcv_name=108, timeout=0, notify=0) at msg.c:110
#2 0x080fd6da in __msg_sig_post (process=0, signal=0, sigcode=0, refport=0)
at
/home/ams/glibc/obj--with-binutils-2.15--gcc-4.0.1/hurd/RPC_msg_sig_post.c:144
#3 0x080c6701 in kill_pid.6530 () at hashval.h:43
#4 0x080c6880 in __kill (pid=2412, sig=0) at ../sysdeps/mach/hurd/kill.c:139
#5 0x080c6022 in raise (sig=6) at ../sysdeps/posix/raise.c:27
#6 0x08090b63 in abort () at ../sysdeps/generic/abort.c:88
#7 0x0808c059 in __assert_perror_fail (errnum=1073741846,
file=0x810f594 "../../src/libdiskfs/init-main.c", line=40,
function=0x812e5d4 "diskfs_init_main") at assert-perr.c:78
#8 0x0805564f in diskfs_init_main (startup_argp=Variable "startup_argp" is not
available.
)
at ../../src/libdiskfs/init-main.c:40
#9 0x0804b829 in main (argc=1, argv=0x101fe04)
at ../../src/ext2fs/ext2fs.c:172
To be precies, it fails in libstore/argp.c:find_class() since
__start_store_std_classes and __stop_store_std_classes simply don't
exist (i.e. they don't point to anything valid):
(gdb) b find_class
Reading in symbols for ../../src/libstore/argp.c...done.
Breakpoint 1 at 0x807041e: file ../../src/libstore/argp.c, line 240.
(gdb) rr
Breakpoint 1, find_class (name=0x81115ff "query", classes=0x0)
at ../../src/libstore/argp.c:240
240 for (cl = classes ?: __start_store_std_classes;
(gdb) p __start_store_std_classes
Address of symbol "__start_store_std_classes" is unknown.
(gdb) p __stop_store_std_classes
Address of symbol "__stop_store_std_classes" is unknown.
So we end up doing the following which is simply wrong:
(gdb) n
241 classes ? *cl != 0 : cl < __stop_store_std_classes;
(gdb)
247 if (! classes && store_module_find_class)
(gdb)
251 return cl;
(gdb)
255 }
And from here, everything goes bonkers. What should happen in in
find_class() if everything is wroking as it should is:
(gdb) b find_class
Breakpoint 1 at 0x8072fb2: file
/build/mbanck/hurd-20050513/build-tree/hurd/libstore/argp.c, line 240.
(gdb) dir /home/ams/hurd/src/libstore
Source directories searched: /home/ams/hurd/src/libstore:$cdir:$cwd
(gdb) rr
warning: shared library handler failed to enable breakpoint
Breakpoint 1, find_class (name=0x810df75 "query", classes=0x0)
at /build/mbanck/hurd-20050513/build-tree/hurd/libstore/argp.c:240
warning: Source file is more recent than executable.
240 for (cl = classes ?: __start_store_std_classes;
(gdb) p __start_store_std_classes
$1 = 0x8128bc4
(gdb) p __stop_store_std_classes
$2 = 0x8128bf4
(gdb) n
0x08073043 240 for (cl = classes ?: __start_store_std_classes;
(gdb)
243 if ((*cl)->name && strcmp (name, (*cl)->name) == 0)
(gdb)
244 return *cl;
(gdb)
255 }
And we return something sane in CL. Pointers to a soultion are
welcome.
Phew...
- ext2fs.static,
Alfred M. Szmidt <=