是否有 Make 调试器?我需要弄清楚别人的makefile

Posted

技术标签:

【中文标题】是否有 Make 调试器?我需要弄清楚别人的makefile【英文标题】:Is there a Make debugger? I need to figure out someone else's makefile 【发布时间】:2010-09-10 21:31:51 【问题描述】:

我需要为非常复杂的、多层的 makefile(大量包含文件、大量目标、大量变量)添加一些功能,这些文件由当然不再与公司合作的其他人编写。这里有一些人了解其中的一部分,但不是全部。

是否有一个 Make 调试器,我可以在其中单步执行它,或者有一些等效的方法来跟踪编译流经的许多文件和目标的执行?还是有其他方法可以了解这件事的工作原理?

【问题讨论】:

【参考方案1】:

GNU Make 有various options 用于在运行时打印出一些调试信息。 -d 会打印出一大堆调试信息;也许太多了,也许不是你需要的,但你可以试着筛选一下。还有一些选项,例如-n 用于进行试运行,-p 用于打印规则数据库,-w 用于打印您所在的目录以帮助追踪复杂递归中的问题,以及--warn-undefined-variables用于跟踪变量的某些问题。

如果这些都不起作用,您可能想尝试Remake,它声称是带有调试器的修补 GNU make。我没有使用过它,但从documentation 看来,它可能会对您有所帮助,并且它有更多关于尝试追踪 Makefile 中的错误的建议。

【讨论】:

【参考方案2】:

您可能想查看这篇文章 http://oreilly.com/catalog/make3/book/ch12.pdf(Oreilly 的“使用 GNU Make 管理项目,第三版”中的“调试 Makefiles”一章)

【讨论】:

以上是关于是否有 Make 调试器?我需要弄清楚别人的makefile的主要内容,如果未能解决你的问题,请参考以下文章

简单的 NMAKE 文件失败(1 个回显命令)

需要弄清楚哪些像素是(完全)透明的

如何在 Mac OS X 下AA,安装 gcc

是否有可能弄清楚IE是否从C#或PowerShell代码重新下载Silverlight xaps?

编绎调试 HotSpot JVM 及在 Eclipse 里调试

真正的 HLSL IDE/调试器