Есть ли способ использовать символические имена для отладочного наблюдения за регистрами RISC-V?
Повторная отладка RISC-V CH32V2xx/CH32V3xx
Есть ли способ посмотреть, скажем, «RCC_CFGR0», а не «* 0x40021004»?
Например, добавить определения в GDB?
(программа скомпилирована с опцией -g и оптимизирована для отладки, IDE 2.3.6)
@Spehro Pefhany, 👍1
Обсуждение1 ответ
Лучший ответ:
Существуют сложные способы внедрения символов в таблицу символов GDB, например, с помощью скрипта Python или создания ELF-файла из программы, созданной с использованием поддельных переменных специально для этой цели, но для этой простой задачи мы можем использовать концепцию GDB «удобных переменных». Они существуют только в течение сеанса GDB.
Введите что-то вроде следующей строки для каждого символа из консоли отладчика Arduino 2.x:
set $RCC_CFGR0 = (беззнаковое целое)0x40021004
.. и часы работают с более удобными для использования в технических характеристиках названиями.

Чтобы отобразить переменные в шестнадцатеричном формате, введите (в консоли отладчика)
установить выходной радикс 16

- Что с сообщениями об ошибках отладки, такими как VMDPE_1|1_VMDPE?
- Как распечатать трассировку стека и зарегистрировать дампы на последовательном мониторе Arduino?
- Код не запустится, если Serial Monitor не открыт
- DFPlayer Mini со своей стандартной библиотекой не инициализируется
- "ожидаемое первичное выражение перед '.' токен" в отладочном коде
- Микросхема Arduino Due (микроконтроллер Atmel) нагревается и светодиод гаснет.
- Нужно ли переключать Arduino Zero между использованием отладки порта USB EDBG и JTAG?
- Странная ошибка в моем Arduino ALU
Вы спрашиваете, существует ли отладочное программное обеспечение, которое может отслеживать символы?, @jsotola
@jsotola Спрашиваю, можно ли добавить символы в GDB в среде Arduino., @Spehro Pefhany
Как вы используете GDB с вашим скетчем Arduino?, @the busybee
Обычно вы загружаете неразрезанный ELF-файл в GDB, он содержит символы вашего исполняемого файла, включая имена регистров. Почему это не работает?, @the busybee
Переменные, используемые в скетче, отображаются в ELF-файле, но не переменные, используемые в библиотеках, не говоря уже о тех, которые определены как структурные элементы в глубинах ядер, которые я ищу. Они упоминаются в файле "... AppData\Local\Arduino15\packages\WCH\hardware\ch32v\1.0.4\system\CH32V30x\SRC\Peripheral\inc\ch32v30x.h", например, как RCC->CFGR0., @Spehro Pefhany
Вы проверили, что ELF собран с опцией отладки?, @the busybee
Другим вариантом может быть отдельный файл символов. Что показало ваше исследование документации GDB?, @the busybee
(ОТ: Если вы хотите обратиться к какому-либо комментатору, пожалуйста, добавьте тег «@». Я вернулся совершенно случайно.), @the busybee
@thebusybee Да, опция -g и оптимизация для отладки. С опциями GDB я пока не продвинулся. Наткнулся на [этот](https://stackoverflow.com/questions/20380204/how-to-load-multiple-symbol-files-in-gdb) вопрос, но не знаю, как создать совместимый формат файла с нуля., @Spehro Pefhany
Как обычно, пожалуйста, [отредактируйте] свой вопрос, чтобы внести уточнения и новую информацию. Комментарии не предназначены для этого. Пока вы этим занимаетесь, подумайте о том, чтобы добавить минимальный и воспроизводимый пример, набросок и, возможно, что-то ещё, например, внешние команды. Пожалуйста, помогите нам помочь вам., @the busybee