你能在Makefile中使用断点吗?

时间:2014-10-10 00:56:31

标签: debugging makefile breakpoints

我正在尝试调试非常大的Makefile。我在这里问了同样的问题: http://www.edaboard.com/thread324433.html 我不确定的是,是否有任何方法可以使用断点进行调试?

如果给出的答案是对的,有人可以让我更准确地告诉我如何在Makefile中使用断点吗?

2 个答案:

答案 0 :(得分:4)

您不能使用'断点'和“逐步执行”Makefile。有几种推荐的调试方法:

  • 插入$(info)语句以显示变量值
  • 插入$(warning)语句 - 它比信息更好,因为它显示行号
  • 暂时将$(eval)替换为$(info)以查看$(eval)扩展为
  • 的内容
  • 研究解析makefile的make输出 - 使用make -p
  • 研究整个make运行的输出:使用make --debug
  • 使用'GNU Make shell hack'(Google it)在执行规则时记录信息
  • 使用ElectricCloud make - 它比标准Make具有更广泛的调试功能,但价格昂贵(值得每一分钱!)

我知道你是一个新手,想知道如何做到这一点,但我不会告诉你。我刚刚为您概述了上述步骤,您必须自己去学习。没有其他办法。几年前我也不得不研究这个问题,当我这样做时,我问了很多愚蠢的问题。没有其他方法可以学习。

答案 1 :(得分:0)

您可以通过Makefile Debugger设置断点和单步执行。

https://elinux.org/Debugging_Makefiles

请注意,您可以通过 sudo apt install gmsl 安装 gmsl。 但是,我找不到 gmd 包。因此,您可以手动下载 gmd 并将其解压缩到您要调试的 Makefile 所在的目录中。