GDB多线程调试

  • 内容
  • 评论
  • 相关

多线程顾名思义就是实现多个线程并发执行,简单的说就是同时处理多项任务。我们在开发过程中会经常使用到多线程,当然出现的问题也是不可避免的。我们在这个章节主要讲述的是使用 GDB 调试多线程的程序。

查看线程的相关信息

使用 GDB 调试多线程的程序时,可以使用下面的命令获取线程的信息,命令展示如下:

info threads

显示可以调试的所有线程,GDB 会为每个线程分配一个ID(和 tid 不同),编号一般从 1 开始,当前调试的线程编号前有“*”。

调试多线程

调试多线程的程序和调试普通的单线程的程序是不同的。当我们调试多线程中的某一个线程时,需要对其他线程的状态做一些设置,包括主线程调试时其他线程是否运行以及运行时需要执行的命令。下面是调试多线程命令的详细介绍。
1. 调试线程时,可以做到切换线程,使用命令:

thread [ID]

通过线程的编号切换到指定的线程。实例:

thread 2         //切换到编号为 2 的线程。

2. 为运行中的线程指定执行命令,命令格式展示如下:

thread apply [ID……] [command]

这个命令可以指定多个 ID,使用 all 表示指定所有的线程。command表示执行的命令。实例:

(gdb) thread apply 1 continue           // 1号线程执行continue命令。
(gdb) thread apply 1 2 continue         //1号和二号线程执行continue命令
(gdb) thread apply all continue         //所有的线程执行continue命令

3. 锁定执行的线程,命令格式展示如下:

本文标题:GDB多线程调试

本文地址:http://www.hosteonscn.com/7946.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注