由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 如何GDB调试因pthread_cond_wait()阻塞的线程? (转载)
相关主题
重复利用threads的问题怎么知道一个线程结束没有?
关于线程读写全局变量的问题[合集] 为什么多个线程生成的随机数是一样的?
C++ 有没有像go routine/channel 一样的库/框架?请教一个c语言实现多线程的问题
gdb debug c++的问题在main()里面创建了几个线程,如何等待所有线程都结束?
再次请教关于AIX中线程以及优先级的问题Pthread一个牵涉两个线程同步,每轮先串行后并行的问题
请教一个GDB/DWARF2的问题condional variable thread sync 问题 (转载)
对pthread熟悉的XD请进来看看how many ways in C++ to release a mutex?
怎么 kill 一个 thread 啊连续release mutex/semphore 2次有什么问题吗?
相关话题的讨论汇总
话题: thread话题: 线程话题: pthread话题: cond话题: gdb
进入Programming版参与讨论
1 (共1页)
f******e
发帖数: 164
1
【 以下文字转载自 Linux 讨论区 】
发信人: francise (小飞猫), 信区: Linux
标 题: 如何GDB调试因pthread_cond_wait()阻塞的线程?
发信站: BBS 未名空间站 (Thu Apr 3 02:08:42 2008)
比如有两个线程1,2,主线程1执行到某处会pthread_cond_wait(),然后由线程2唤醒
,继续执行.
我用gdb调试时却出了问题,调试时主线程执行到pthread_cond_wait()函数处
,进入等待状态,ctrl+c后看到的线程信息如下:
(gdb) info thread
* 3 Thread 1026 (LWP 19165) 0x420292e5 in sigsuspend ()
from /lib/i686/libc.so.6
2 Thread 2049 (LWP 19164) 0x420e0037 in poll () from
/lib/i686/libc.so.6
v*****x
发帖数: 8
2
pthread_cond_wait only waits for signal happens after.
So, the correct sequence is:
thread 1 waits (suspends)
thread 2 signals
thread 1 proceeds.
In your scenario:
thread 2 signals (which makes you assume thread 1 should return immediately
from a subsequent wait)
thread 1 waits (suspends indefinitely until next time thread 2 signals)
For more information, refer to pthread reference.

)

【在 f******e 的大作中提到】
: 【 以下文字转载自 Linux 讨论区 】
: 发信人: francise (小飞猫), 信区: Linux
: 标 题: 如何GDB调试因pthread_cond_wait()阻塞的线程?
: 发信站: BBS 未名空间站 (Thu Apr 3 02:08:42 2008)
: 比如有两个线程1,2,主线程1执行到某处会pthread_cond_wait(),然后由线程2唤醒
: ,继续执行.
: 我用gdb调试时却出了问题,调试时主线程执行到pthread_cond_wait()函数处
: ,进入等待状态,ctrl+c后看到的线程信息如下:
: (gdb) info thread
: * 3 Thread 1026 (LWP 19165) 0x420292e5 in sigsuspend ()

1 (共1页)
进入Programming版参与讨论
相关主题
连续release mutex/semphore 2次有什么问题吗?再次请教关于AIX中线程以及优先级的问题
用vim + gdb 调试的人牛屄轰轰的请教一个GDB/DWARF2的问题
go程序的调试对pthread熟悉的XD请进来看看
MFC里如何判断一个线程处在Wait的状态?怎么 kill 一个 thread 啊
重复利用threads的问题怎么知道一个线程结束没有?
关于线程读写全局变量的问题[合集] 为什么多个线程生成的随机数是一样的?
C++ 有没有像go routine/channel 一样的库/框架?请教一个c语言实现多线程的问题
gdb debug c++的问题在main()里面创建了几个线程,如何等待所有线程都结束?
相关话题的讨论汇总
话题: thread话题: 线程话题: pthread话题: cond话题: gdb