linux 互斥量怎么debug知道其值?

我想debug时确定这个互斥量是不是锁上,如图,各个字段是什么含义呢?(百度了,没查到)
clipboard.png

阅读 2k
1 个回答

找到一份 pthread_mutex_lock ,但是跟你的不一定一样 ... (这个版本也很多,跟操作系统等等因素有关),可以看一眼。

__data 里,

大概 __lock 为 0 是没有锁,非 0 是有锁的。

__count 用于递归锁,递归加锁的时候会自增。

__owner 拥有锁的线程标识。(根据 mutex 类型不同,貌似有时线程标识会直接放 __lock 里)

__kind 锁类型(很多 ......)

随便看了一下,难免错漏。预知详情,自己看源码吧 ....

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题