gdb 为什么遇到 pthead_create 就不继续调试了???
我用GDB调试一个多文件的C++的Project,在调试到pthread_create()函数时,发现无论时用s(tep) or n(ext)or c(ontinue)都不能继续进入到下面的断点中,程序总是一直运行到结束。
用GDB调试如何调试多线程呢?具体针对我的问题来说,怎样在进行到pthread_create()函数时,程序还能继续调试下去呢?
在网上搜了很多,似乎都没有我这种问题,弄了一天了,好着急啊。希望大侠和好心人帮助解答。
The following is some related code:
先是这句话被执行
_threadHandler.SpawnThreadWorker();
然后走到这个函数:
void ThreadHandler::SpawnThreadWorker( void )
// ******************************************
// Spawns the 'worker' thread, which starts us into the Framework class.
{
Framework *fw;
int ret;
LOG( INFO, "Spawning worker thread..." );
fw = new Framework;
Program::Instance()->SetFW( fw );
ret = pthread_create( &_tidW, &_attr, ThreadHandler::ThreadWorker, fw );
if( ret != 0 ) {
LOG( EMERG, "Error spawning thread: %s", strerror( errno ) );
exit( EXIT_FAILURE );
}
_tidWDead = false;
}
调试到pthread_creat处,程序就开始哗啦啦的Run起来,后面设的断点根本没有停住。为什么啊?好奇怪啊?
焦急等待解答中!!!!!Thanks very much!!!!!