You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GDB调试多线程程序时如何切换至指定线程上下文

GDB多线程调试:切换线程上下文方法

1. 查看所有线程

暂停调试后,先执行命令列出所有活跃线程,获取目标线程的ID:

info threads

输出会显示每个线程的ID、状态、对应执行的函数等信息,示例如下:

1 Thread 0x7f9b3a9d6700 (LWP 1231)  main () at main.c:42
  2 Thread 0x7f9b3a1d5700 (LWP 1232)  worker_thread () at thread.c:105
* 3 Thread 0x7f9b399d4700 (LWP 1233)  io_thread () at io.c:78

其中*标记的是当前GDB所处的线程上下文。

2. 切换到指定线程

直接使用thread命令加上目标线程ID即可切换上下文,比如要切换到线程1234:

thread 1234

执行后GDB会自动切换到该线程的上下文,后续执行的调试命令(如bt、print、step)都会针对这个线程生效。

额外实用技巧

  • 切换线程后,可用bt查看当前线程的调用栈:
    bt
    
  • 如果想在调试单个线程时避免其他线程运行,可开启调度锁:
    set scheduler-locking on
    
    调试完成后记得关闭:
    set scheduler-locking off
    

内容的提问来源于stack exchange,提问作者Kokomelom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 15:30:54