2015-08-21 3 views
0

Мне нужно проверить возвращаемое значение функции из сценария TRACE32.Как проверить возвращаемое значение функции в Lauterbach (Trace32)?

Чтение документации Я вижу возможное решение для чтения регистра счетчика программ (IP), а затем после выполнения инструкции по адресу, где ПК указывает, чтобы принять значение оттуда.

Есть ли какая-либо другая функция, которая возвращает непосредственно значение, возвращаемое функцией?

ответ

1

Каждая функция обычно имеет псевдопеременные, называемые «return». Вы можете видеть, что в окне sYmbol.Browse.Var \\*\*\<myfunc>\* (где MyFunc это имя вашей функции)

Из любой переменной, которую вы можете получить его значение с помощью функции ПРАКТИКЕ 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