From 50e3c5f71ff3e6c3537032894178ff038afc6241 Mon Sep 17 00:00:00 2001 From: shaojinchun Date: Thu, 5 May 2022 10:30:03 +0800 Subject: [PATCH] debug thread bind on cpu0 --- components/lwp/lwp.c | 1 + components/lwp/lwp_syscall.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/components/lwp/lwp.c b/components/lwp/lwp.c index d586d33bac..c842e831db 100644 --- a/components/lwp/lwp.c +++ b/components/lwp/lwp.c @@ -1245,6 +1245,7 @@ pid_t lwp_execve(char *filename, int debug, int argc, char **argv, char **envp) if (debug && rt_dbg_ops) { lwp->debug = debug; + rt_thread_control(thread, RT_THREAD_CTRL_BIND_CPU, (void*)0); } rt_hw_interrupt_enable(level); diff --git a/components/lwp/lwp_syscall.c b/components/lwp/lwp_syscall.c index a2c456d29e..e02fd6f070 100644 --- a/components/lwp/lwp_syscall.c +++ b/components/lwp/lwp_syscall.c @@ -1368,6 +1368,11 @@ rt_thread_t sys_thread_create(void *arg[]) thread->tid = tid; lwp_tid_set_thread(tid, thread); + if (lwp->debug) + { + rt_thread_control(thread, RT_THREAD_CTRL_BIND_CPU, (void*)0); + } + level = rt_hw_interrupt_disable(); rt_list_insert_after(&lwp->t_grp, &thread->sibling); rt_hw_interrupt_enable(level); @@ -1509,6 +1514,11 @@ long _sys_clone(void *arg[]) thread->clear_child_tid = (int *)arg[4]; } + if (lwp->debug) + { + rt_thread_control(thread, RT_THREAD_CTRL_BIND_CPU, (void*)0); + } + level = rt_hw_interrupt_disable(); rt_list_insert_after(&lwp->t_grp, &thread->sibling); rt_hw_interrupt_enable(level); -- Gitee