【问题标题】:Building Blender for breakpoints/Debug in Xcode在 Xcode 中为断点/调试构建 Blender
【发布时间】:2015-10-22 22:39:56
【问题描述】:

TL;RD 在 Xcode 的 http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Mac 之后,哪些步骤可以让您添加断点/监视并在 OS X 上正确调试可执行文件?

我的规格

Xcode Version 6.4 (6E35b) OSX 10.10.4 (14E46) CMake 3.3.0 GUI build with QT 4.8.6

详细说明

我确实按照说明进行了设置,因此我按照 Xcode 5 的建议设置了方案(确实让调试作为默认设置)但是

  1. 第一次 cmake 失败是因为没有 numpy 内部没有 numpy(发布或调试)https://svn.blender.org/svnroot/bf-blender/trunk/lib/darwin-9.x.universal/python/lib/python3.4/ 也从控制台输出中搜索 munpy 类似 /Users/tyoc213/blender-build/blender/../lib/darwin-9.x.universal/python/lib/python3.4/python3.4/site-packages/numpy 的东西你也可以看到它搜索在python3.4/python3.4 上,这很奇怪。
  2. 在第二次运行时,它说它将在安装时跳过numpy。你可以在这里看到cmake的输出https://gist.github.com/tyoc213/aea0fb541383dc06981a
  3. 所以我们现在可以生成 Xcode 项目,我们使用 Xcode 打开生成的搅拌机项目,将方案配置为在 dev-wiki 上并等待它在闪避步骤失败。

调试方案唯一合理的修复是根本没有修复,使用发布方案

对此只有一个“修复”用于编译和运行,将方案更改发布,但即使检查了Debug application并且Xcode附加在启动进程,断点不起作用。

调试方案

所以调试方案中的问题是这样的:How to build a blender build in Xcode 5? 基本上没有找到来自 libbf_intern_cycles.a 的引用:_Controller_actuators_length_CurveMapping_curves_length_MeshColorLayer_data_length_MeshLoopColorLayer_data_length_MeshPaintMaskLayer_data_length,@987654338 @,_MeshPolygonIntPropertyLayer_data_length_MeshPolygonStringPropertyLayer_data_length_MeshSkinVertexLayer_data_length_MeshTextureFaceLayer_data_length_MeshTexturePolyLayer_data_length_MeshUVLoopLayer_data_length_MeshVertexFloatPropertyLayer_data_length_MeshVertexIntPropertyLayer_data_length_MeshVertexStringPropertyLayer_data_length_Sensor_controllers_length_MeshPolygonStringPropertyLayer_data_length这是_Spline_points_length9876

关于调试的正确设置和放置断点的任何建议,然后使用Xcode和观察变量步骤、线程 /strong> 等等?

【问题讨论】:

  • 我不知道 XCode,但是 Blender 与其他 CMake 项目没有什么不同。只需将CMAKE_BUILD_TYPE 设置为Debug,重建。您应该会看到调试符号。
  • 请注意,numpy 问题是警告,而不是错误。
  • 这似乎与stackoverflow.com/questions/31178003/… 重复,两者都是调试版本的链接错误。
  • 认为它是重复的,人们可能认为它已解决,因为 OP 说“为了得到它,我让它工作了”......虽然他没有看到有一个正确的调试方案的用处您可以在其中放置可视断点、添加监视、查看堆栈和断点命中时的局部变量等等。这就是为什么用更具体的标题再次询问的原因。

标签: python xcode debugging xcode6 blender


【解决方案1】:

目前我发现能够在 Xcode 中放置断点并逐步执行操作、查看本地变量等的唯一方法是在 CMake 中禁用循环。

也许我应该将其作为 CMake 构建过程中的错误发布,我不知道我是否可以在 Xcode 中构建 scons 并在 Xcode 中调试它。

【讨论】:

  • 我尝试安装 CUDA 包(版本 7)并使用 WITH_CYCLES_CUDA_BINARY 编译 Blender,但仍然遇到同样的错误,有没有办法使用循环编译?
  • 更改为 Xcode 中的发布方案,它应该可以运行,但您无法在 Xcode 中以这种方式调试 Blender。
  • 谢谢,但我想用 Debug 配置构建循环,如何告诉链接器在原始问题的列表中查找符号?
  • 在 Cmake 中,您可以配置为使用调试构建(我认为它也适用于 scons)...但据我所知,构建 on OS X 用于cycles+debug 今天在 CMake 中被破坏了,所以你会得到上面列出的错误)。您需要禁用循环构建,以便在 OS X 的调试模式下逐步调试。
  • 嗨!感谢您的回复,我也将同样的问题发布到 bf-committers 邮件列表。这是暂时的解决方法。
猜你喜欢
  • 1970-01-01
  • 2011-07-29
  • 2015-10-05
  • 1970-01-01
  • 2011-03-16
  • 2012-12-25
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
相关资源
最近更新 更多