remake调试makefile方法

发布时间:2026/5/28 7:39:47

remake调试makefile方法 基本跟踪方法方法一打印详细执行过程bashremake -x-x等同于--trace打印每条规则执行前的信息包括目标名、来源文件、行号。方法二单步调试模式最详细bashremake -X进入交互式调试器可以一步一步控制执行。交互式调试器命令进入remake -X后会出现提示符(remake)常用命令命令说明n或next执行下一步s或step进入子目标c或continue继续执行到结束p 变量名打印变量值i target查看某个目标的信息where显示当前执行位置q或quit退出以下是remake的详细使用方法与命令指南1. 基础准备安装完成后在包含Makefile的目录下用remake代替原本的make命令即可。为了演示假设我们有一个简单的 Makefile里面包含错误或者你想查看的执行逻辑。2. 核心功能一非交互式透视直接输出结果如果你不想一步步走只想让remake帮你理清头绪可以使用以下参数追踪目标依赖最实用Bashremake --trace效果它比make --trace更清晰会明确指出哪个目标因为哪个依赖文件更新了而需要重建或者因为什么原因被跳过。打印目标依赖树Bashremake --targets效果列出 Makefile 中定义的所有目标以及它们的源文件位置和行号方便快速定位。3. 核心功能二交互式单步调试重点这是remake最强大的地方。你可以像用 GDB 调试代码一样让 Makefile 在特定的地方停下来。如何进入调试模式方法 A启动时直接进入调试Bashremake -X # 或者 remake --debugger方法 B出错时自动进入调试非常适合排查编译报错Bashremake --post-mortem调试界面常用命令进入调试器后你会看到类似remake0的提示符此时可以输入以下命令控制流程① 查看状态与变量whatis [变量名]查看某个变量在当前时点的具体定义和类型例如whatis OBJS。expand [表达式]展开 Makefile 中的函数或变量。例如expand $(wildcard *.c)能直接看到展开后的文件名列表。where或backtrace查看当前的调用栈搞清楚当前的目标是由哪个上层目标触发的。② 流程控制单步/继续step(简写s)单步执行。进入下一个依赖目标的检查或命令执行。next(简写n)执行下一个命令但不进入子目标内部。continue(简写c)继续执行直到遇到下一个断点或出错。quit(简写q)退出调试器。③ 断点管理break [目标名](简写b)在特定的目标Target上设断点。例如break clean或break main.o。当remake准备构建这个目标时就会暂停。info break查看当前设置的所有断点。delete [断点编号]删除指定的断点。④ 目标检查target打印当前正在处理的目标的详细信息。target [目标名]查看指定目标的依赖关系、命令以及它是否需要被重新构建会显示文件的时间戳对比。

相关新闻