strace跟踪线程调用
睿丰德科技 专注RFID识别技术和条码识别技术与管理软件的集成项目。质量追溯系统、MES系统、金蝶与条码系统对接、用友与条码系统对接
方法一:
strace -fp pid , 可以跟踪所有线程, 进程的系统调用。
- [root@xxxx]strace -p 24091
- Process xxx attached - interrupt to quit
- [ Process PID=24091 runs in 32 bit mode. ]
- futex(0xc5bbbd8, FUTEX_WAIT, 24215 NULL
你的问题不是strace不能跟踪,而是你的线程锁住了。 futex应该是内核里对pthread_mutex_lock实现的一个函数。
方法二(本质同方法一,但更明了):
pstree -p pid 可以查看多线程程序的进程树。
在针对各个线程,逐个的strace -p pid
最后
man pstack
pstack - print a stack trace of a running process
相当于gdb内的bt,打出栈信息。