From: Paul F. <pf...@ta...> - 2003-09-16 11:52:30
|
Hello all, First I've noticed a couple of things with UML. I've put them at the end of this email. Anyway, I'm trying to run a multithreaded program on a UML node. The program functions correctly when run normally from the shell prompt. However when run inside GDB the following happens: 1) My program calls pthread_create() 2) Signal SIG32 is received and debugging stops: Program received signal SIG32, Real-time event 32. 0x40068469 in sigsuspend () from /lib/libc.so.6 3) Program stack trace is: my_function() -> pthread_create() -> pthread_getconcurrency() -> sigsuspend() Are there any known issues with UML, GDB, multithreaded applications and signals? I've tried my program with 2.4.19-5um and 2.4.22-4um. In both cases with the Tracing Thread style of operation. Would SKAS mode make any difference? Hopefully someone can shed some light on my problem. Thanks in advance, Paul Fee Here are the other things I've noticed: ======================================================================= 1) Kernel 2.4.22-4 and uml-patch-2.4.22-4.bz2 will not build with the default kernel configuration. I get an error with file mem.c: mem.c: In function `memory_devfs_register': mem.c:724: `anon_fops' undeclared (first use in this function) mem.c:724: (Each undeclared identifier is reported only once mem.c:724: for each function it appears in.) mem.c:724: initializer element is not constant mem.c:724: (near initialization for `list[8].fops') mem.c:724: initializer element is not constant mem.c:724: (near initialization for `list[8]') I've got round this by running "make xconfig ARCH=um" and enabling "Anonymous memory" in the "Character devices" section. ======================================================================= 2) I've seen an endian or network/host byte order funny with ping's route record option. Here's the output, the host has a tuntap interface of 192.168.2.1, the UML node has eth0 configured as 192.168.2.2 Host output: >ping -R 192.168.2.2 PING 192.168.2.2 (192.168.2.2) from 192.168.2.1 : 56(124) bytes of data. 64 bytes from 192.168.2.2: icmp_seq=1 ttl=64 time=0.389 ms RR: 192.168.2.1 192.168.2.2 192.168.2.2 192.168.2.1 --- 192.168.2.2 ping statistics --- 3 packets transmitted, 3 received, 0% loss, time 2003ms rtt min/avg/max/mdev = 0.348/0.366/0.389/0.023 ms UML output: # ping -R 192.168.2.1 PING 192.168.2.1 (192.168.2.1): 56 octets data 64 octets from 192.168.2.1: icmp_seq=0 ttl=64 time=0.7 ms RR: 2.2.168.192 1.2.168.192 1.2.168.192 2.2.168.192 ======================================================================== |