TermiNexus
|
8112e0d66f
|
fix(_withcontent): 移除 wdbg 运行时诊断(已定位根因)
根因在 TPV 编译器 range 负 step 条件(HandlesFor.vp 固定 ICMP_SLT),
_withcontent 侧保留 strcmp 匹配 + _tls_index 守卫双保险即可。
|
2026-08-15 06:59:20 +08:00 |
|
TermiNexus
|
5f6dd8615a
|
debug(_withcontent): find 诊断增强(names[i] 地址/内容 + strcmp 对比)
第一轮诊断显示 TLS/栈/top 全正常但 strcmp 未命中,增强 find 循环内
打印 names[i] 指针与 %s 内容,直接观察 push 存的字段字符串是否损坏。
|
2026-08-15 06:55:26 +08:00 |
|
TermiNexus
|
dc9a2848c1
|
debug(_withcontent): 临时 [wdbg] 诊断 provider 栈运行时状态
TLS 守卫/strcmp/IR 均正确但 Test 9 仍 find 返回 NULL,加运行时诊断:
get_stack 打印 tls 索引与栈指针(观察是否每次 NEW)、push 打印 field/ptr/top、
find 打印 field/top/HIT。重编 Test 跑一轮后删除。
|
2026-08-15 06:51:50 +08:00 |
|
TermiNexus
|
5d660a5448
|
docs(_withcontent): _init_tls 守卫注释更新为双保险
TPV 已正式实现 @t.TLS(FuncGenMixin.translate_function_def 与
ClassGenMixin._translate_method 生成 __tls_init_done 全局标志 +
skip/cont 块,对齐 TPC HandlesFunctions.py L1763-1792);此判重
守卫保留以兼容未重建的旧 TPV.exe。
|
2026-08-15 06:42:30 +08:00 |
|
TermiNexus
|
6759406a7e
|
fix(_withcontent): _init_tls 加 _tls_index==0 守卫(TPV 未实现 @t.TLS 一次性语义)
TPV 编译器没有 @t.TLS 的首次执行守卫(TPC 有:全局标志+跳过块),
_init_tls 每次调用都重新 TlsAlloc → _get_stack 每次拿到新 TLS 索引和
新空栈 → push/find 各用各的栈,provider 永远匹配失败(Test 9 注入仍
FAIL 的根因)。_tls_index 初始为 0(TlsAlloc 成功不会返回 0),判重即
等价 TLS 语义。待办:TPV 函数翻译对齐 TPC HandlesFunctions.py L1763
实现 @t.TLS。
|
2026-08-15 06:36:53 +08:00 |
|
TermiNexus
|
ba16d54f32
|
fix(_withcontent): _find_provider 字段匹配改 strcmp 内容比较
TPV 对每次 create_global_string 生成独立字符串常量(不去重),push 存的
字段名指针与 find 传入的指针地址不同,指针 == 永假 → provider 匹配失败 →
with 上下文 __mbuddy__ 注入不上(Test 9 FAIL)+ 后续 upper() 解引用 NULL
崩溃(0xC0000005)。改为 string.strcmp 内容比较,TPC/TPV 均健壮。
|
2026-08-15 06:28:43 +08:00 |
|
TermiNexus
|
cfc30d735c
|
将 .py 和 .pyi 后缀名改为了 .vp 和 .vpi 后缀名
|
2026-07-30 16:33:56 +08:00 |
|