You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lauterbach Trace32自定义菜单调用GOSUB子程序提示no such label如何解决

问题根因

Lauterbach T32的菜单回调命令是在独立的全局执行上下文中运行的,你在脚本中定义的sayNE标签属于脚本运行时的局部上下文,脚本执行结束后上下文就会销毁,所以菜单触发时自然找不到对应标签,哪怕你提前用Do命令加载过子程序文件也没用,Do执行完成后对应上下文同样会被释放。

可行解决方案

方案1:直接调用独立脚本(最适合多参数差异的重复操作)

把重复执行的逻辑封装成独立的.cmm脚本,需要传参的话可以直接在Do命令后追加参数,菜单回调里直接写Do命令调用即可,不需要用GOSUB。
示例菜单代码:

menu.reprogram
(
 add toolbar 
(
toolitem "Say NE", "SN,r"
(
  Do ~~~/subSayNE.cmm
)
// 仅参数不同的相似操作,直接传不同参数即可
toolitem "Say Hello", "SH,r"
(
  Do ~~~/commonOperate.cmm "Hello"
)
toolitem "Say World", "SW,r"
(
  Do ~~~/commonOperate.cmm "World"
)
)
)
enddo

带参数的通用脚本commonOperate.cmm示例:

ENTRY &content
PRINT &content
// 其他通用逻辑
RETURN

方案2:指定脚本路径调用GOSUB

如果确实需要用GOSUB调用单个脚本内的不同标签,可以直接在GOSUB后指定脚本完整路径+标签名,无需提前加载脚本:

GOSUB ~~~/subScript.cmm sayNE

这样T32会自动读取目标脚本,找到对应标签执行。

内容的提问来源于stack exchange,提问作者PasterOfMuppets

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:06:05