我目前正在使用KGDB调试内核代码。 每当我进入时,我自然会跳转到kgdb的中断处理程序。 在GDB下,我运行了以下命令。
info threads
,输出为
7 irq_stack_union()中的7个线程7(rcu_sched)0x0000000000000000
6 irq_stack_union()中的线程5(kworker / 0:0H)0x0000000000000000
irq_stack_union()中的5个线程3(ksoftirqd / 0)0x0000000000000000
irq_stack_union()4线程2(kthreadd)0x0000000000000000
3 irq_stack_union()
中的线程1(init)0x0000000000000000irq_stack_union()中的2个线程3754(Xorg)0x0000000000000000
1个主题4294967294(shadowCPU0)kgdb_breakpoint()
在kernel / debug / debug_core.c:1042
然后我会跳过代码,期望最终进入另一个线程(我对Xorg感兴趣)然而,在我单步执行代码后,下一个执行的线程变为cpu idle。
info thread
如何将调试上下文切换到Xorg或任何其他线程,另外irq_stack_union()的含义是什么。线程空闲等待中断?