Я знаю, что для получения символьного адреса lauterbach используется Address.Offset(), но эта команда не работает для статических функций! статический символ не найден. Итак, какая команда для получения смещения адреса статического символа?Получение адреса статического символа в Trace32 Lauterbach
ответ
Я использую компилятор GreenHills. Добавив параметр/GHS в Data.Load.Elf, проблема решена.
Я предполагаю, что ваш компилятор оптимизировал вашу статическую функцию, например. включая тело функции непосредственно в вызывающем. Компиляторы могут это сделать, и если они делают, символ ввода статической функции больше не доступен и, следовательно, не может использоваться в любом отладчике.
Итак, в своем make-файле убедитесь, что вы компилируете код без оптимизации (или меньше оптимизаций) и убедитесь, что вы компилируете для отладки. Или объявите свою функцию внешней. Или используйте некоторые компиляторы компилятора или атрибуты для сохранения статической функции.
Также убедитесь, что ваша статическая функция вызывается - в противном случае ее можно также сбрасывать компилятором.
Мой компилятор вообще не оптимизирован. – Khaled
Я думаю, вам действительно нужно предоставить более подробную информацию. Все, что мы знаем сейчас, это то, что TRACE32 не может видеть символ входа вашей статической функции. Но какой компилятор вы используете? Как вы называете компилятор? Как вы называете компоновщика? Какую архитектуру процессора вы используете? Как вы загружаете свой файл ELF в TRACE32? Является ли ваша статическая функция когда-нибудь вызвана? – Holger
Я также предлагаю использовать такой инструмент, как «readelf» GNU, чтобы проверить, отображается ли ваша статическая функция в таблице символов ELF или в информации об отладке DWARF. – Holger
- 1. Отладка с использованием Lauterbach (Trace32)
- 2. Как проверить возвращаемое значение функции в Lauterbach (Trace32)?
- 3. Отладчик Lauterbach с помощью команды Trace32-System.Up не работает
- 4. Получение статического IP-адреса клиента
- 5. Trace32 установка эмуляции
- 6. Lauterbach всегда делает шаг в таймер isr
- 7. Использование Trace32 с Qualcomm FFA
- 8. GDB: Получение имени символа из адреса памяти
- 9. Откуда я могу скачать удаленный API trace32
- 10. API-интерфейс Trace32 Lauterbach для доступа к программным переменным программы C
- 11. lauterbach trace32 CPU Core условная точка останова с arm cortex a7
- 12. Невозможно установить точки останова в конкретных функциях отладчиком Lauterbach
- 13. Команда Trace32 для чтения содержимого символа из файла ELF
- 14. Понимание/Получение типа символа?
- 15. Как TRACE32 знает тип глобального символа, загруженного из ELF?
- 16. Объявление статического символа массива в C
- 17. Получение MethodInfo статического метода статического класса
- 18. Выполнение личной функции trace32, когда линия достигнута во время теста
- 19. trace32 - Дамп памяти нескольких диапазонов адресов для одного двоичного файла
- 20. Получение строки из URL-адреса после символа C#
- 21. Симулятор сценария Trace32?
- 22. понимание trace32 команд
- 23. Trace32 compile .t32 file
- 24. Перенаправление статического URL-адреса в Wordpress
- 25. Поиск статического адреса функции в библиотеке linux
- 26. Как передать аргумент в скрипте для lauterbach
- 27. Использовать левую функцию для статического символа
- 28. Объединение статического символа char * и константы string
- 29. Получение позиции символа в NSString
Может быть, вы пытаетесь отладить оптимизированный код? Что делает Var.INFO говорит, что для вас статическая функция? –
Holger
Ничего, Var.INFO пуст для статических символов – Khaled