Получение адреса статического символа в Trace32 Lauterbach
Я знаю, что для получения адреса символа lauterbach используется Address.Offset(), но эта команда не работает для статических функций! статический символ не найден. Так что же команда для получения адреса смещения статического символа?
2 ответа
Я использую компилятор GreenHills. При добавлении параметра / GHS в Data.Load.Elf проблема решается
Я предполагаю, что ваш компилятор оптимизировал вашу статическую функцию, например, включая тело функции непосредственно в вызывающей стороне. Компиляторы могут делать это, и если они это делают, символ ввода статической функции больше не доступен и, следовательно, не может использоваться ни в каком отладчике.
Так что в вашем make-файле убедитесь, что вы компилируете код без оптимизаций (или без оптимизаций) и что вы компилируете для отладки. Или объявите вашу функцию внешней. Или используйте некоторые специфичные для производителя прагмы или атрибуты компилятора для сохранения статической функции.
Также убедитесь, что ваша статическая функция вызывается - иначе она также может быть сброшена компилятором.