Yocto新手技术问询:如何查看变量的完整赋值历史(而非仅最终值)?
追踪Yocto配方中变量的多次赋值变化
作为Yocto新手,想要看清变量被多次赋值的过程确实需要点小技巧,毕竟bitbake -e默认只输出变量的最终结果。针对你的需求,这里有几个实用的方法可以帮你看到HELLO变量的两次赋值记录:
方法1:开启bitbake的调试模式
直接使用bitbake -D <你的配方名称>命令运行构建,-D参数会开启详细调试输出。在日志里你会找到类似这样的记录:
DEBUG: Setting HELLO="hello" DEBUG: Setting HELLO="hell"
这些调试信息会清晰展示HELLO变量每次被赋值的内容和顺序,你可以通过搜索关键词HELLO快速定位到相关记录。
方法2:在配方中添加主动调试输出
你可以在配方里的每次变量赋值后,用bbnote函数打印当前变量值,这样构建时就能直观看到变化:
S = "${WORKDIR}" HELLO = "hello" bbnote "HELLO 第一次赋值后的值: ${HELLO}" HELLO = "hell" bbnote "HELLO 第二次赋值后的值: ${HELLO}" SRC_URI = "file://myserver.tar.gz" do_compile() { make }
运行bitbake <你的配方名称>后,终端会输出这两条note信息,明确显示HELLO从"hello"变为"hell"的过程。
方法3:过滤bitbake -e的输出上下文
如果你还是想用bitbake -e,可以结合grep命令查看变量赋值的上下文:
bitbake -e <你的配方名称> | grep -B3 -A3 "HELLO"
不过这个方法可能无法直接显示两次赋值的先后顺序,更适合配合前两种方法一起使用。
这些方法在Ubuntu 18.04环境下都能正常工作,因为bitbake的核心功能和配方语法不受系统版本影响。
内容的提问来源于stack exchange,提问作者Oleksandr
相关产品推荐
相关产品推荐

