diff --git a/components/lwp/arch/arm/cortex-a/lwp_gcc.S b/components/lwp/arch/arm/cortex-a/lwp_gcc.S index 45eeea3933476b25098913487fbef7f10342cbef..433946bcd9f888d85b132b0fc100cfaac84852f8 100644 --- a/components/lwp/arch/arm/cortex-a/lwp_gcc.S +++ b/components/lwp/arch/arm/cortex-a/lwp_gcc.S @@ -183,7 +183,12 @@ ret_to_user: cmp r0, #0 pop {r0-r3, r12, lr} bne user_do_signal - +#ifdef RT_USING_GDBSERVER + push {r0-r3, r12, lr} + mov r0, lr + bl lwp_check_debug_attach_req + pop {r0-r3, r12, lr} +#endif movs pc, lr #ifdef RT_USING_LWP diff --git a/include/rtdef.h b/include/rtdef.h index a479349c62bb63b4856e0456c1af8105b99ba215..5bd59cbf2f8c0655b8822e1de470eda25fed4800 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -744,10 +744,13 @@ struct rt_thread struct rt_wakeup wakeup; /**< wakeup data */ int exit_request; #ifdef RT_USING_USERSPACE +#ifdef RT_USING_GDBSERVER int step_exec; + int debug_attach_req; int debug_ret_user; int debug_suspend; struct rt_hw_exp_stack *regs; +#endif void * thread_idr; /** lwp thread indicator */ int *clear_child_tid; #endif