При отладке uboot последовательность шагов не является непрерывной. , когда я делаю следующее (n) в подсказке gdb, он переходит к другой неожиданной строке. Я монтирую NFS на цель и отлаживаю. Просьба уточнить.Отладка uboot
Спасибо, Сурья
При отладке uboot последовательность шагов не является непрерывной. , когда я делаю следующее (n) в подсказке gdb, он переходит к другой неожиданной строке. Я монтирую NFS на цель и отлаживаю. Просьба уточнить.Отладка uboot
Спасибо, Сурья
Это происходит потому, что обычно бинарная U-Boot производства GCC был оптимизирован для размера (потреблять меньше дискового пространства). Вы можете построить двоичный файл U-Boot без оптимизации для более легкой отладки. Взгляните на Makefile U-Boot и удалите все флаги оптимизации. Информацию об флажках оптимизации можно найти here.
Шаг отладки также не очень хорошо работает с макросами и встроенными функциями, поскольку на самом деле код не размещен там, где они определены.
@ ответ microMolvi является правильным, вы можете vim Makefile
на верхней директории источника UBoot и найти CFLAGS
заменить -O2
(это O не 0) от -O0
, то это нормально, чтобы шаг за шагом.
Кстати, возможно, лучше использовать s (шаг) в GDB.