在调试 uboot 时,步骤顺序不连续。当我在 gdb 提示符下执行 next(n) 时,它会转到其他一些意想不到的行。我正在目标上进行 NFS 挂载并进行调试。请说清楚。
问问题
2072 次
2 回答
2
发生这种情况是因为通常 GCC 生成的 U-Boot 二进制文件已针对大小进行了优化(以消耗更少的存储空间)。您可以在不优化的情况下构建 U-Boot 二进制文件,以便于调试。查看 U-Boot 的 Makefile 并删除任何优化标志。可以在此处找到有关优化标志的信息。
步进调试也不能很好地与宏和内联函数一起工作,因为代码实际上并没有放在定义它们的地方。
于 2013-07-07T12:48:31.563 回答
1
@microMolvi的回答是对的,你可以vim Makefile
在uboot源码的顶层目录,找到CFLAGS
replace -O2
(不是0) by -O0
,然后一步一步就可以了。
顺便说一句,也许在 GDB 中使用 s(step) 会更好。
于 2013-08-21T03:04:23.640 回答