我想在Linux 2.6+的多線程進程中使用setitimer()
(或更少的可能性,alarm()
),並使用啓用NPTL的libc。哪個線程將從內核接收sigalarm (SIGALRM)
?setitimer,SIGALRM和多線程進程(linux,c)
謝謝。
2014-04更新:我應該如何在多線程程序中設置setitimer()
,如果我想寫一個像gperftools的cpuprofile這樣的分析工具;但在我的工具中,我想支持動態鏈接的程序(因此可以將自己的庫注入到init分析中)以及靜態鏈接的程序(無法做到^^^^^^)。
我目前的分析工具可與正好fork()
後exec()
之前設置setitimer
,並且它還採用ptrace
,並得到了目標程序的控制和劫持由setitimer
產生SIGPROF/SIGVPROF/SIGALRM。我不確切知道它如何與多線程程序一起工作。
對於freebsd和solaris來說是一樣的嗎? – osgx 2010-04-06 17:55:36