|
|||||||
Как вывести шестнадцатеричное HEX-значение для типа int при отладке в PlatformIO
Время создания: 13.10.2022 22:49
Текстовые метки: platformio, VSCode, VS Code, Visual Studio Code, hex, шестандцатеричный, int, целое, значение, представление, debug, отладка
Раздел: Компьютер - Аппаратное обеспечение - Микроконтроллеры ARM
Запись: xintrea/mytetra_syncro/master/base/1665690566qwf5moec0t/text.html на raw.github.com
|
|||||||
|
|||||||
При отладке микроконтроллеров иногда удобнее видеть шестнадцатеричное значение int-переменной вместо того чтобы смотреть на целочисленное представление. Как это можно сделать в PlatformIO? Во-первых надо сказать, что из-за оптимизаций (например при использовании inline-функций) значение переменной не всегда можно увидеть. Тут уж ничего не поделаешь и придется модификатор "инлайновости" убирать. Так же нужно проверить, с какими опциями компилируется debug-сборка. Для нормальной отладки все оптимизации должны быть отключены. В файле platformio.ini должна быть прописана опция debug_build_flags, примерно так: [env:bluepill_f103c8] platform = ststm32 board = bluepill_f103c8 framework = cmsis build_flags = -std=c99 -O3 debug_build_flags = -O0 -g -ggdb Увидеть отлаживаемую переменную можно в раскрывающейся области "Контрольное значение". Нажав на плюсик [+] можно добавить еще одну переменную (кстати, можно добавлять выражения). После нажатия плюсика надо просто ввести имя переменной. Или можно выделить имя переменной, нажать правую кнопку мыши, и в контекстном меню выбрать "Добавить контрольное значение". Чтобы отлаживаемая переменная отображалась в HEX-нотации, необходимо перед именем переменной написать (void *), вот так: В данном примере addr - это имя int-переменной. Вообще, PlatformIO поддерживает следующие форматы: Currently, VSCode does not provide an API to change the value format of watchpoints. You can manually cast watchpoint expressions to display the value as specific pointer types:
Видно, что можно отображать не только int-значения, но и разыменовывать указатели в HEX-представление, и даже указатели на указатели и прочие сложные составные типы данных. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|