Макросы обычно заменяются их содержимым препроцессором. Таким образом, компилятор больше не «видит» имена макросов и, следовательно, не может создавать для них отладочную информацию в файле ELF. В результате ни один отладчик не может знать имена макросов.
Однако некоторые компиляторы поддерживают создание отладочной информации для макросов препроцессора. Например. если вы используете GCC с уровнем отладки 3 (gcc -g3
), компилятор создает раздел с именем ".debug_macro" в вашем файле ELF.
Если ваш ELF содержит раздел ".debug_macro", вы должны сообщить TRACE32, чтобы он учитывал этот раздел при загрузке ELF, используя опцию "/MACRO". Итак, вы загружаете свой ELF, например, с помощью
Data.LOAD.Elf * /MACRO
Затем вы можете увидеть все свои макросы препроцессора в окне sYmbol.List.MACRO
или использовать любой из них в окне Var.WATCH
, или получить к ним доступ с помощью функции Var.VALUE()
, или распечатать их с помощью команды Var.PRINT
. Например.:
Var.Watch UINT32_MAX
Var.PRINT UINT32_MAX
PRINT %Decimal Var.VALUE(UINT32_MAX)
person
Holger
schedule
14.09.2017