arm gdb 'Не включает информацию макроса препроцессора' - PullRequest
0 голосов
/ 10 марта 2020

Попытка отладки на плате tm4c123, но столкнулась с проблемой при печати c макросов.
при запуске (gdb) print SOME_MACRO get No symbol "SOME_MACRO" in current context.

(gdb) info source дает:

Producer is GNU GIMPLE 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] -mthumb -mcpu=cortex-m4 -mthumb -mcpu=cortex-m4 -ggdb3 -O0 -O0 -fmath-errno -fsigned-zeros -ftrapping-math -fno-trapv -fno-strict-overflow -fno-openmp -fno-openacc -ffunction-sections -fdata-sections -fltrans.
Compiled with DWARF 2 debugging format.
Does not include preprocessor macro info.

несмотря на то, что флаги отладки были переданы.
Интересная часть заключается в том, что просмотр предварительно обработанного кода включает макросы

> arm-none-eabi-gcc test.c startup/startup_ARMCM4.S -g3 -O0 -Wall -mthumb -mcpu=cortex-m4 -D__STARTUP_CLEAR_BSS -D__START=main -flto -ffunction-sections -fdata-sections --specs=nano.specs --specs=nosys.specs -L. -L./ldscripts -T nokeep.ld -Wl,--gc-sections -Wl,-Map=test.map -E
...
#define FFF 123
int main() {
 (*((volatile uint32_t *)0x40025010)) = 123;
}
...

, если при компиляции некоторых простых программ с случайными флагами gcc и g3 макрос информация присутствует.

arm-none-eabi-g cc версия gcc version 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] (GNU Tools for Arm Embedded Processors 7-2018-q3-update)
arm-none-eabi-gdb версия GNU gdb (GNU Tools for Arm Embedded Processors 7-2018-q3-update) 8.1.0.20180315-git

...