如何在 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
我需要检查来自 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