linux threaded application hang

Andriy Gapon avg at icyb.net.ua
Wed Oct 13 04:10:42 PDT 2004


on 13.10.2004 12:23 Andriy Gapon said the following:

> (gdb) p set
> $1 = (sigset_t *) 0x482c87f0
> (gdb) p *set
> $2 = {__val = {1250168, 1208405312, 1208363760, 1209738430, 1209738446,
> 1210126092, 1209738478, 1209738494, 1210131344, 1209738526, 1209738542,
> 1209738558,
>     1209738574, 1209738590, 1209554352, 1209738622, 1209738638,
> 1209738654, 1209738670, 1209738686, 1209738702, 1209738718, 1209738734,
> 1209738750,
>     1209738766, 1209738782, 1209738798, 1210090948, 1209738830,
> 1209738846, 1209738862, 1209738878}}
> 
> if I understand correctly linux sigset_t then mask for signal 32 should
> be bit 31 (highest) of __val[0]:
> 
> 1250168 == 100110001001101111000

well it seems that frame 0 was actually reported wrong by gdb, or
something like that

> (gdb) p mask
> $3 = {__val = {0, 0, 0, 0, 0, 1208347125, 0, 3217021232, 0, 0, 0, 0, 0,
> 0, 3, 0, 0, 0, 0, 0, 16777216, 0, 1209525676, 102, 1209536638, 1209529244,
>     1209524044, 1208404144, 7, 1210900512, 3, 1210877936}}

and this is correct:

`ps -O sigmask` reported empty mask for initial thread, so it looks that
it was linux_kill that actually failed.

-- 
Andriy Gapon


More information about the freebsd-emulation mailing list