对C使用pthreads,有没有办法访问特定线程的程序计数器/指令指针?
示例:
void *thread_main(void *arg) {
long thread = (long)arg;
lock (thread);
***print (thread.pc);***
critical_section (thread);
***print (thread.pc);***
unlock (thread);
return NULL;
}
答案 0 :(得分:0)
结帐backtrace()
;它在您的平台上都受支持。
#include <execinfo.h>
....
void * pc;
backtrace(&pc, 1);
....
有关详细信息,请参阅man 3 backtrace
。请注意,运行相同thread_main
的所有线程都会报告相同的pc
。