我目前正在调试一个多线程应用程序( Linux ia64下的线程,ARM)。英勇、磨难和gdb是我目前使用的工具。
存在一些同步问题,为了以后的分析,我希望将线程执行记录到一个或多个文件中。朴素的实现会执行一些写/fprintf操作,这可能(取决于libc实现)锁定一些内部互斥体。这反过来会影响程序的行为(我称之为“意外锁定”),因此是不可接受的。搜索internet只会产生逆解,即如何使
我需要在代码中的某个点使用PThreads.解决同步问题,一个线程需要知道一个信号量上阻塞的线程数(如sempahore.h中所定义的)。当我看一看sem_getvalue(sem_t *s, int *sval)的手册页时,它指出返回值sval在Linux中是0,但根据POSIX可能有其他语义,即sval的绝对值被设置为信号量s上阻塞的线程数因此,我正在寻找一个Linux编译选项