调试uboot时,步骤顺序不连续。 当我在gdb提示下做下一个(n)它会转到其他一些意想不到的行。 我在目标上进行NFS挂载并进行调试。 请澄清。
答案 0 :(得分:2)
这是因为通常GCC生成的U-Boot二进制文件已针对大小进行了优化(以减少存储空间消耗)。您无需优化即可构建U-Boot二进制文件,以便于调试。看一下U-Boot的Makefile并删除所有优化标志。 有关优化标记的信息可以在here找到。
对于宏和内联函数,步调试也不能很好地工作,因为代码实际上并没有放在定义它们的地方。
答案 1 :(得分:1)
@ microMolvi的回答是对的,您可以在{uboot源代码的顶层目录上vim Makefile
找到CFLAGS
替换-O2
(它的O不是0)-O0
,然后一步一步就可以了。
顺便说一句,也许在GDB中使用s(步骤)会更好。