Commit Graph
21 Commits
Author SHA1 Message Date
TermiNexus 3ac48282a3 feat(callgenctor): 构造参数列表头+槽位 0xCDCD 诊断
ASAN 崩溃 node=0xCDCDCDCDCDCDCDCD(_translate_struct_ctor → translate_value)确认:is_alive(cargs) 只验列表结构体,get() 读的是 __data__ 数组——两者都可能未初始化(MEMBUDDY_FILL_GUARD 无条件填 0xCD)或悬空。

新增:读取列表头(__data__@0 __count__@8 __capacity__@16),命中 0xCDCD 打印定位 fail-fast;预检每个实参槽位 0xCDCD 并打印 ai/can/data/count/cap。区分列表未初始化 vs 槽位悬空两种根因分支。
2026-08-25 16:29:48 +08:00
TermiNexus b3b82a8093 feat(tpc): [DET] 读取悬空打印 cargs 指向块头 - is_alive 拦截时输出 cargs/block/hdr(0=已free UAF实锤 奇数=活跃但记录表异常 其它=非pool块),定位 KwEntry cl.args 悬空源 2026-08-25 15:35:28 +08:00
TermiNexus fefc1e8343 feat(memhub): 读取侧存活校验 is_alive - 补 detection 写入检测盲区:struct_ctor 读 cargs 前校验 cl.args 是否在记录表 active 记录中,不在即 [DET] 读取悬空 打印 cargs 值并终止;拦截 use-after-free 读取(SlotsBugTest KwEntry cargs=cl.args 悬空根因),detection==0 时 is_alive 恒返回 1 不拦截 2026-08-25 15:31:39 +08:00
TermiNexus 1de7c8d2ca chore(tpc): 移除全部临时 DBG 日志 - VDBG(ExprGenMixin)/CTORDBG(CallGenCtor)/LISTDBG(_list)/ALLOCDBG+set/get_debug_log+set/get_alloc_src(memhub)/CLDBG+[DEPDBG](CallGenMixin)/--enable-debug-log(main)/set_alloc_src(HandlesTranslator);保留 detection 机制(前后 0xCDCD 标记+记录表探测)与 MEMBUDDY_FILL_GUARD 守卫 2026-08-25 15:17:51 +08:00
TermiNexus 0efd438bfb feat(main): --detection 命令行开关应用 MemBuddy 分配检测到双池 - 创建内存池前用 GetCommandLineA 扫描 --detection(sys._init_argv 依赖 mb 不能提前),mb(1GB) 与 perm_pool(512MB) 均传 detection 布尔;detection 数据区大小硬编码 32MB(memhub MEMBUDDY_DET_RECORD_SIZE);argparse 注册 --detection 帮助项 2026-08-25 14:59:21 +08:00
TermiNexus 21e67cac40 fix(tpc): 含 raise 函数调用参数补全排除 EH 输出参数,杜绝双重注入 - CallGenMixin 零值兜底与 CallGenCall found_func 参数数回退原将 %__eh_msg_out__/%__eh_code_out__ 计入形参数,为 raise_disk() 无参调用补 2 个 zeroinitializer 占位,_emit_eh_guarded_call 又追加真实 EH 实参 → call 4 参 vs define 2 参 → x64 ABI 错位 → 函数写 null 输出指针 0xC0000005(TestFBProject raise_disk 崩溃根因);三处计数均排除 EH 参数 2026-08-25 14:04:27 +08:00
TermiNexus 916c1284c9 fix(tpc): 虚调用 vtable 布局按接收者静态类型解析而非 this 调整后父类指针 - _do_virtual_call 原用 self_ptr.Ty 解析 vc_entry,多继承中 self 被 bitcast 成父类指针(如 ColorM*)后得到父类单槽 vtable 布局(method_index/method_count 按父类算)→ GEP 槽位 0 读到 area 而非 color_code(MultiInheritTest color_code 虚调用 FAILED 根因);改优先用 vtable_base(对象头)类型解析,未传 vtable_base 时回退 self_ptr 保持原行为 2026-08-25 13:53:56 +08:00
TermiNexus a39b5da0f8 基本稳定 2026-08-05 20:11:38 +08:00
TermiNexus 0a10b20dde 修正了逻辑,使 TPV 能够正常编译 2026-08-03 02:00:49 +08:00
TermiNexus 4e17365b76 修正了 args 传参问题 2026-07-31 17:15:54 +08:00
TermiNexus fcd4d8a438 修复了关于 snprintf 的错误(不支持长度推导) 2026-07-31 04:06:57 +08:00
TermiNexus 377b60fd67 取消了 i8* == i8* 实际使用 strcmp 的规则 2026-07-30 21:56:41 +08:00
TermiNexus cfc30d735c 将 .py 和 .pyi 后缀名改为了 .vp 和 .vpi 后缀名 2026-07-30 16:33:56 +08:00
TermiNexus f79c8ca643 Fixed 2026-07-30 13:34:26 +08:00
TermiNexus 3633be1995 Some simple information syncing 2026-07-28 21:08:58 +08:00
TermiNexus 1837339f69 修正了一些错误 2026-07-26 20:32:26 +08:00
TermiNexus ca7c2120b8 修正了种子编译器的错误 2026-07-22 21:55:36 +08:00
TermiNexus 135aa05485 尝试进行 Qt 测试,增加了 AI 人机调试工具 _console,以及 TransPyV 进行修正 2026-07-21 14:41:22 +08:00
TermiNexus a277ded8d4 修正了 TPC 的一些错误,包括 Test 维护后 TPV 无法重新编译或重编译后越界的部分问题 2026-07-20 11:12:30 +08:00
TermiNexus 4e66207ba1 重置上传,新增了多个标准库,开始 TransPyV 自举实验 2026-07-19 11:38:15 +08:00
t 796222a300 snapshot before regression test 2026-07-18 19:25:40 +08:00