|
Home > Archive > Unix Programming > February 2004 > sigsuspend
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
|
|
| pat saunders 2004-02-18, 2:34 am |
| Hi,
I am trying to fix an erratic s/w problem , that is very hard to reproduce !!!
Basically processes seem to freeze and do nothing.
When I perform a TRUSS , I get the following :
sigsuspend(0xEFFFED60) (Sleeping).
The strange thing is when I grep for sigsuspend in the code, I find that it
is not being called. Can this system call be called indirectly through another
system function . E.G I am calling pause but when I wrote an example function
and performed a truss it showed pause() (Sleeping)!!
Also,
Is there any way, I can determine what signals the mask is allowing / blocking!!!
The OS is SunOS.
Ta
Pat
| |
| Barry Margolin 2004-02-18, 3:34 am |
| In article <bc0e3bd8.0402180801.e166a52@posting.google.com>,
pat.saunders@sis.securicor.co.uk (pat saunders) wrote:
> Hi,
> I am trying to fix an erratic s/w problem , that is very hard to reproduce
> !!!
> Basically processes seem to freeze and do nothing.
> When I perform a TRUSS , I get the following :
> sigsuspend(0xEFFFED60) (Sleeping).
> The strange thing is when I grep for sigsuspend in the code, I find that it
> is not being called. Can this system call be called indirectly through
> another
It could be called internally by library functions.
> system function . E.G I am calling pause but when I wrote an example function
> and performed a truss it showed pause() (Sleeping)!!
> Also,
> Is there any way, I can determine what signals the mask is allowing /
> blocking!!!
> The OS is SunOS.
I believe Solaris's truss has an option to show function calls in
addition to system calls. If you use that option, you should be able to
determine what library is calling sigsyspend().
--
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
| |
| Sean Burke 2004-02-18, 4:34 am |
|
Barry Margolin <barmar@alum.mit.edu> writes:
> In article <bc0e3bd8.0402180801.e166a52@posting.google.com>,
> pat.saunders@sis.securicor.co.uk (pat saunders) wrote:
>
>
> It could be called internally by library functions.
>
>
> I believe Solaris's truss has an option to show function calls in
> addition to system calls. If you use that option, you should be able to
> determine what library is calling sigsyspend().
You can also use Solaris's pstack to dump the stack traces
for the process's threads. There are a number of useful tools
in /usr/proc/bin that are worth becoming familiar with.
-SEan
|
|
|
|
|