0

对 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;
}
4

1 回答 1

0

退房backtrace();您的两个平台都支持它。

    #include <execinfo.h>
    ....
        void * pc;
        backtrace(&pc, 1);
    ....

详情请参阅man 3 backtrace。请注意,所有运行相同的线程thread_main都会报告相同的pc.

于 2017-01-27T00:00:58.120 回答