Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1350437
  • 博文数量: 281
  • 博客积分: 8800
  • 博客等级: 中将
  • 技术积分: 3346
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-17 22:31
文章分类

全部博文(281)

文章存档

2013年(1)

2012年(18)

2011年(16)

2010年(44)

2009年(86)

2008年(41)

2007年(10)

2006年(65)

我的朋友

分类: LINUX

2007-11-25 10:36:53

 /usr/include/pthread.h中有如下定义  
  #   define   PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP   \  
      {0,   0,   0,   PTHREAD_MUTEX_RECURSIVE_NP,   __LOCK_INITIALIZER}  
  对于多线程程序,你可以定义你的断点是否在所有的线程上,或是在某个特定的线程。GDB很容易帮你完成这一工作。  
  break     thread    
          break     thread     if   ...  
                  linespec指定了断点设置在的源程序的行号。threadno指定了线程的ID,注意,这个ID是GDB分配的,你可以通过“info   threads”命令来查看正在运行程序中的线程信息。如果你不指定thread   则表示你的断点设在所有线程上面。你还可以为某线程指定断点条件。如:          
                  (gdb)   break   frik.c:13   thread   28   if   bartab   >   lim  
          当你的程序被GDB停住时,所有的运行线程都会被停住。这方便你你查看运行程序的总体情况。而在你恢复程序运行时,所有的线程也会被恢复运行。那怕是主进程在被单步调试时。  
阅读(1865) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~