我创建了一个 PRACTICE Lauterbach 脚本,以便从不同情况的缓冲区中检索某些字符串。
我在从中检索缓冲区的不同位置放置了 4 个断点。
我想以非阻塞方式检索信息,就好像它是一个中断服务程序一样。为此,我使用了 GLOBALON 命令,如下:
GLOBALON PBREAK GOSUB BB_HIT_CALLBACK
在 BB_HIT_CALLBACK 中,我为 4 个断点中的每一个插入了服务例程。
BB_HIT_CALLBACK:
IF (sYmbol.EXIST(BREAK_LABEL1))
(
IF (REGISTER(pc)==ADDRESS.offset(BREAK_LABEL1))
(
GOSUB ISR1
)
)
IF (sYmbol.EXIST(BREAK_LABEL2))
(
IF (REGISTER(pc)==ADDRESS.offset(BREAK_LABEL2))
(
GOSUB ISR1
)
)
IF (sYmbol.EXIST(BREAK_LABEL3))
(
IF (REGISTER(pc)==ADDRESS.offset(BREAK_LABEL3))
(
GOSUB ISR1
)
)
IF (sYmbol.EXIST(BREAK_LABEL4))
(
IF (REGISTER(pc)==ADDRESS.offset(BREAK_LABEL4))
(
GOSUB ISR1
)
)
RETURN
另一方面,在正常执行中,我放置了一个简单的无限循环。
WHILE TRUE()
(
If (!STATE.RUN())
(
Go
)
)
ENDDO
这使程序保持在一个循环中,仅由 GLOBALON PBREAK 命令中断。我希望能够有一个工具栏按钮来结束这个循环的执行,但是在运行时,脚本只响应断点,并且 UI 元素被忽略。
如何从 UI 元素停止执行循环?
我已经能够设置读取秒数,并在 60 秒时超时,但这对于我想要的来说还不够好。