0

在调试 uboot 时,步骤顺序不连续。当我在 gdb 提示符下执行 next(n) 时,它会转到其他一些意想不到的行。我正在目标上进行 NFS 挂载并进行调试。请说清楚。

4

2 回答 2

2

发生这种情况是因为通常 GCC 生成的 U-Boot 二进制文件已针对大小进行了优化(以消耗更少的存储空间)。您可以在不优化的情况下构建 U-Boot 二进制文件,以便于调试。查看 U-Boot 的 Makefile 并删除任何优化标志。可以在此处找到有关优化标志的信息。

步进调试也不能很好地与宏和内联函数一起工作,因为代码实际上并没有放在定义它们的地方。

于 2013-07-07T12:48:31.563 回答
1

@microMolvi的回答是对的,你可以vim Makefile在uboot源码的顶层目录,找到CFLAGSreplace -O2(不是0) by -O0,然后一步一步就可以了。

顺便说一句,也许在 GDB 中使用 s(step) 会更好。

于 2013-08-21T03:04:23.640 回答