包虫病

注册

 

发新话题 回复该主题

GDB调试多线程程序 [复制链接]

1#
北京中科医院怎么样         https://myyk.familydoctor.com.cn/2831/detail/

顾名思义,多线程程序指的就是拥有多个(≥2)线程的程序,各个线程可以独立完成一项任务,更重要的是它们可以并发执行。这也就意味着完成相同的任务,多线程程序执行花费的时间往往会少于单线程程序。但有得也有失,多线程程序的编写更容易产生异常或Bug(例如线程之间因竞争同一资源发生了死锁、多个线程同时对同一资源进行读和写等等),调试多线程程序,往往需要耗费更多的精力。庆幸的是,GDB调试器不仅仅支持调试单线程程序,还支持调试多线程程序。本质上讲,使用GDB调试多线程程序的过程和调试单线程程序类似,不同之处在于,调试多线程程序需要监控多个线程的执行过程,进而找到导致程序出现问题的异常或Bug,而调试单线程程序只需要监控1个线程。表1罗列了GDB调试多线程程序时常用的命令以及它们各自的功能。

表1GDB调试多线程程序常用命令调试命令功能infothreads查看当前调试环境中包含多少个线程,并打印出各个线程的相关信息,包括线程编号(ID)、线程名称等。threadid将线程编号为id的线程设置为当前线程。threadapplyid...
分享 转发
TOP
发新话题 回复该主题