Счетчик программ Pthread
Используя pthreads для C, есть ли способ получить доступ к счетчику программ / указателю команд для определенных потоков?
Пример:
void *thread_main(void *arg) {
long thread = (long)arg;
lock (thread);
***print (thread.pc);***
critical_section (thread);
***print (thread.pc);***
unlock (thread);
return NULL;
}
1 ответ
Проверять, выписываться backtrace()
; он поддерживается на обеих ваших платформах.
#include <execinfo.h>
....
void * pc;
backtrace(&pc, 1);
....
Увидеть man 3 backtrace
для деталей. Помните, что все потоки работают одинаково thread_main
сообщит то же самое pc
,