我需要从TRACE32脚本中检查函数的返回值。
阅读文档我看到了一个可能的解决方案来读取程序计数器(IP)寄存器,然后在执行PC指向的地址处的指令后从那里获取值。
是否还有其他函数直接返回函数返回的值?
答案 0 :(得分:1)
每个函数通常都有一个名为“return”的伪变量。您可以在窗口sYmbol.Browse.Var \\*\*\<myfunc>\*
中看到(其中 myfunc 是您的函数的名称)
在任何变量中,您都可以使用PRACTICE函数Var.VALUE(<variable>)
获取其值。
因此,您可以使用
获取函数 myfunc()的返回值GO sYmbol.EXIT(myfunc) // go to return statement of myfunc
PRINT Var.VALUE(return) // get the return value
如果您想进行模块测试,另一种方法可能会让您感兴趣:
因此成像您只想用随机参数调用函数int func3(int a, int b)
(例如5和3)得到返回值。在这种情况下,请执行以下操作:
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