如何在 Lauterbach(Trace32) 中检查函数的 return 值?

How to check return value of a function in Lauterbach(Trace32)?

我需要检查来自 TRACE32 脚本的函数的 return 值。

阅读文档我看到一个可能的解决方案是读取程序计数器 (IP) 寄存器,然后在 PC 指向的地址执行指令后从那里获取值。

是否有任何其他函数 return 直接将值 return 由函数编辑?

每个函数通常都有一个名为 "return" 的伪变量。您可以在 window sYmbol.Browse.Var \*\*\<myfunc>\* 中看到(其中 myfunc 是您的函数的名称)

您可以使用 PRACTICE 函数获取任何变量的值 Var.VALUE(<variable>)

所以你得到函数 myfunc() 的 return 值

GO sYmbol.EXIT(myfunc)   // go to return statement of myfunc
PRINT Var.VALUE(return)  // get the return value

如果您想进行模块测试,您可能会感兴趣另一种方法:
因此想象一下,您只想使用随机参数(例如 5 和3) 并得到 return 值。在这种情况下,请执行以下操作:

Var.NEWLOCAL \x        // create artificial variable on the PRACTICE stack
Var.Set \x=func3(5,3)  // execute func3() with arguments 5 and 3 on your CPU
PRINT Var.VALUE(\x)    // get the return value