Hello again, Da Zheng, le Tue 15 Dec 2009 13:51:09 +0800, a écrit : > (gdb) run > Starting program: /root/hurd/ddekit_test/test > test1 thread starts at 1260701688 > test1 thread wakes up at 1260701691 > test1 thread enter a semaphore at 1260701691, timeout: 1 > > Program received signal SIGSEGV, Segmentation fault. > 0x0105f88c in evc_wait () from /lib/libc.so.0.3 > (gdb) info stack > #0 0x0105f88c in evc_wait () from /lib/libc.so.0.3 > #1 0x01060089 in mach_msg () from /lib/libc.so.0.3 > #2 0x0110bb1e in sleep () from /lib/libc.so.0.3 > #3 0x08049ad7 in thread_test () at main.c:302 > #4 0x08049b61 in main (argc=1, argv=0x125fda4) at main.c:318
Please make sure that it's really this kernel thread that generates the SIGSEGV. > It's quite weird, as it shows that mach_msg calls evc_wait. That could be a glitch of some other mechanism. You can use disassemble 0x01060089 to check what's really there and l * 0x01060089 to check which precise file that comes from. > I can find two mach_msg implementations which are in mach/msg.c and > hurd/intr-rpc.h respectively. See the comment of intr-rpc.h: that implementation of mach_msg is only used for mig-generated functions. Samuel