我有一个在RHEL6.x(64位)上运行的多线程进程.
我发现当我尝试启动进程时,进程会挂起并且某些线程(同一进程)会崩溃.有些线程等待线程之间的共享内存被创建(我可以看到所有这些都没有被创建).
但是当我使用strace时,进程不会挂起并且它工作得很好(所有应该创建的内存都会被创建).即使在创建内存后中断strace,也可以保持进程正常运行.
我读过这个:
这确实给了我一个想法.但我仍然不清楚这是因为他们使用的RHEL版本没有被提及.
另外,另一点是,将内核更改为fedora(兼容)内核不会产生问题.
所以,我想知道strace究竟是如何影响一个过程的?(或者只是如链接中指出的那样移回内核的堆栈)?