chore(dbg): 函数翻译内段探针 p1/p2/p3
夹住 auto_addr → 形参注册/pre-scan → slife reset → 语句翻译 四段;TEMP,定位后移除。
This commit is contained in:
1 parent
20e3f3694f
commit
9b97470c09
1 file changed
+4
-1
@@ -386,6 +386,7 @@ novirtual class FuncGenDef(CallGenBase.CallGenBase):
|
||||
|
||||
# Record value-reference (&T / &temp T) parameter modes for call-site auto-address.
|
||||
self._register_func_auto_addr_modes(trans, mangled_name, fd)
|
||||
VLogger.info("TR.p1.auto_addr.done", "TR")
|
||||
|
||||
# Register the CExport function in the global table (for cross-module calls). t.CExport definitions use bare
|
||||
# names (@strlen); cross-module calls consult the table to use the bare name instead of @{sha1}.func.
|
||||
@@ -777,9 +778,11 @@ novirtual class FuncGenDef(CallGenBase.CallGenBase):
|
||||
# 表是函数间共享的一段栈式区间,嵌套函数各自独立;退出时由 _SlifeRestore 弹回外层起点。
|
||||
# 放在这里(而非更早)是因为上方存在多条提前返回分支(泛型模板/async/extern),
|
||||
# 只有从这里开始才保证"有 reset 必有 restore"。
|
||||
old_slife_base: int = self.Gen.VarGen._SlifeReset(pool)
|
||||
old_slife_base: int = self.Gen.VarGen._SlifeReset(pool)
|
||||
VLogger.info("TR.p2.slife_reset.done", "TR")
|
||||
|
||||
# Translate the function body
|
||||
VLogger.info("TR.p3.body.begin", "TR")
|
||||
if body is not None:
|
||||
bn2: sizet = len(body)
|
||||
for bi2 in range(bn2):
|
||||
|
||||
Reference in new issue
Block a user