关于monkey 在.xm 文件无法下断点 如何处理

本人新手一枚

今天用monkeyDev创建一项目,发现 这个 .xm 文件 不能像其他 .mm 文件能下断点

望各位大佬 指点一二,

之前回答有误,xm 生成的 mm 里通过 #line 将 mm 的行与 xm 进行了绑定,所以调试器最终找到的是 xm 文件,也就是必须在 xm 里下断点才行。

你指的不能下断点是不是在 IDE 里左侧点击添加 breakpoint 无效,那可能是 Source Type 不对,在 Xcode 右侧的视窗里修改:

如果不是指的这个,那可能代码并未执行到此处,可以打个 Log 校验下。

Orignal Answer

在 xm 生成的 mm 里打断点,能在源码里打断点是因为存在源码与机器码的 DWARF 映射。xm 只是一个生成 mm 的 DSL,似乎没有生成对应的 DWARF,所以只能去 DSL 生成的 mm 里打断点了。

我记得生成会带控制debug信息行号的预处理指令啊

对,有 #line 的宏,我之前以为那个只是用来修正打 Log 的,没试过断点可不可以。

确实是可以的,我记错了,#line 确实能控制 debug 信息,可以正常在 xm 里下断点。