From 49feb6a2b444bb5ffa6fbdff7e92bb5eba542daf Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Tue, 25 Aug 2026 15:57:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(memhub):=20[DET]=20=E8=B6=8A=E7=95=8C?= =?UTF-8?q?=E5=86=99=E8=BF=BD=E5=8A=A0=E5=90=8Cptr=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=20-=20=E6=89=AB=E6=8F=8F=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E8=A1=A8=E6=89=BE=E5=90=8C=E4=B8=80=20ptr=20=E7=9A=84=E5=A4=9A?= =?UTF-8?q?=E6=9D=A1=E8=AE=B0=E5=BD=95=EF=BC=8C=E9=AA=8C=E8=AF=81=20alloc?= =?UTF-8?q?=20=E9=87=8D=E5=8F=A0=EF=BC=88Token=2072B=20=E4=B8=8E=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E4=B8=B2=20buf=207B=20=E5=85=B1=E7=94=A8=E5=9D=97=20?= =?UTF-8?q?=E2=86=92=20=E4=BA=92=E7=9B=B8=E8=A6=86=E7=9B=96=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E5=AE=9A=E4=BD=8D=20size=3D7=20=E5=9D=97=E8=A2=AB?= =?UTF-8?q?=E5=BD=93=20Token=20=E5=86=99=E7=9A=84=E6=A0=B9=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/memhub.vp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/includes/memhub.vp b/includes/memhub.vp index 9204c39..c198ec5 100644 --- a/includes/memhub.vp +++ b/includes/memhub.vp @@ -908,6 +908,16 @@ class MemBuddy(MemManager): cis: t.CUInt64T = self._det_records[idx2 * 2 + 1] stdio.printf("[%d]ptr=%llu sz=%llu ", ci2, cip, cis & (free_flag - 1)) ci2 += 1 + # 重叠检测:同一 ptr 是否有多条记录(alloc 重叠实锤——不同 size + # 请求拿到同一块 → 互相覆盖;如 Token(72B) 与字符串 buf(7B) 共用块) + stdio.printf("\n同ptr记录: ") + ci3: t.CSizeT = 0 + while ci3 < self._det_count: + cp3: t.CUInt64T = self._det_records[ci3 * 2] + cs3: t.CUInt64T = self._det_records[ci3 * 2 + 1] + if cp3 == p and (cs3 & free_flag) == 0: + stdio.printf("[%zu]sz=%llu ", ci3, cs3 & (free_flag - 1)) + ci3 += 1 stdio.printf("\n") stdlib.exit(1) i += 1