From a8f7c0b0b3cc3f85463c08ae73da18bf71fd14c3 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Wed, 26 Aug 2026 23:30:28 +0800 Subject: [PATCH] =?UTF-8?q?debug(sched):=20create=5Fthread=20=E6=89=93?= =?UTF-8?q?=E5=8D=B0=20tid/func/stack=20=E5=AE=9E=E9=99=85=E5=80=BC?= =?UTF-8?q?=EF=BC=8C=E5=AE=9A=E4=BD=8D=E7=BA=BF=E7=A8=8B=E9=A6=96=E6=AC=A1?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=E8=B7=B3=E6=A0=88=20#UD=EF=BC=88rip=20?= =?UTF-8?q?=E5=9C=A8=E6=A0=88=E5=8C=BA=E5=9F=9F=EF=BC=89=E6=A0=B9=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VKernel/Kernel/sched/sched.vp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/VKernel/Kernel/sched/sched.vp b/VKernel/Kernel/sched/sched.vp index 606d5dc..5f217d4 100644 --- a/VKernel/Kernel/sched/sched.vp +++ b/VKernel/Kernel/sched/sched.vp @@ -1,4 +1,4 @@ -import mm +import mm.mm as mm import asm import sched.process as proc import drivers.serial.uart.serial as serial @@ -201,6 +201,10 @@ class Scheduler: th.arg = arg stack_size: t.CUInt64T = THREAD_STACK_SIZE stack_ptr: t.CVoid | t.CPtr = mm.malloc(stack_size) + _dbg_ct: t.CArray[t.CChar, 96] + viperlib.snprintf(c.Addr(_dbg_ct), 96, "[sched] ct t%d func=0x%lx stack=0x%lx\n", + tid, t.CUInt64T(th.func), t.CUInt64T(stack_ptr)) + serial.puts(c.Addr(_dbg_ct)) if not stack_ptr: return None th.stack = stack_ptr th.stack_size = stack_size @@ -225,9 +229,9 @@ class Scheduler: _sched_storage: Scheduler = Scheduler() -_sched_ptr: Scheduler | t.CPtr = c.Addr(_sched_storage) -_switch_old_rsp: t.CVoid | t.CPtr -_switch_new_rsp: t.CVoid | t.CPtr +_sched_ptr: Scheduler | t.CPtr | t.CExport = c.Addr(_sched_storage) +_switch_old_rsp: t.CVoid | t.CPtr | t.CExport +_switch_new_rsp: t.CVoid | t.CPtr | t.CExport @c.Attribute(t.attr.naked) def _do_switch():