gdb查看锁的信息

1、起因

两个线程A和B,共享变量C。

A线程想对C加锁,恰巧此时切换到B线程,B线程也想对C加锁。

2、调试

(1)打开gdb,输入 

thread apply all bt 

查看所有线程的backtrace信息;

 

 (2)进入线程2,backtrace

 

 (3)找到调用 pthread_mutex_lock(&(sock->recv_lock)) 的那个帧,进入

 

 (4)在该帧中查看该锁的占用者

 

 (5)info thread 查看所有线程的信息

posted @ 2022-10-12 16:30  春山可  阅读(477)  评论(0)    收藏  举报