[pthreads] Как узнать, кто держит mutex?

yulya

Как с помощью gdb понять, какой поток захватил mutex? Вопрос, наверное, простой, но в документации найти не получается.

yulya

как часто бывает, нашёл решение проблемы через минуту после написания вопроса
воспользовался не gdb, а valgrind: http://www.valgrind.org/docs/manual/drd-manual.html
буду благодарен, если кто-то научит пользоваться gdb в этих целях

ppplva

Если ничего лучше не предложат, всегда можно посмотреть на описание структуры из libc и что-нибудь сообразить.
Вот, например, для ia64:
typedef union
{
struct __pthread_mutex_s
{
int __lock;
unsigned int __count;
int __owner;
unsigned int __nusers;
/* KIND must stay at this position in the structure to maintain
binary compatibility. */
int __kind;
int __spins;
__pthread_list_t __list;
#define __PTHREAD_MUTEX_HAVE_PREV 1
} __data;
char __size[__SIZEOF_PTHREAD_MUTEX_T];
long int __align;
} pthread_mutex_t;
Оставить комментарий
Имя или ник:
Комментарий: