如何在依赖的xcode项目中设置断点

时间:2009-05-29 06:13:59

标签: xcode macos

我有一个XCode项目(我的主要xcode项目有它的可执行文件)。它依赖于其他一些项目(在详细信息视图的项目选项卡下,还有一些它依赖的其他xcode项目。)

我的问题是如何在依赖项目的代码中设置断点?

我尝试了这个,但这不起作用 1.打开我的主要xcode项目 2.双击其中一个从属xcode项目 3.在源目录中,找到我想要中断的文件并添加一个断点(通过单击编辑器边框的一侧,显示一个蓝色的“书签事物”) 4.回到'Build and Go',我的应用程序确实运行但它从未在我在#3中设置的断点处断开。

有人可以帮帮我吗?我花了几天时间,我无法理解为什么。

谢谢。

7 个答案:

答案 0 :(得分:18)

1)在项目中添加断点

2)进入xcode中的断点视图(项目导航器旁边的左上角)视图的图标就像一个断点图标

3)右键单击所需的断点并选择“移至” - > “用户”

如果断点位于“用户”项目下,则所有项目都可以访问它。

答案 1 :(得分:2)

每当我在使用Xcode GUI设置断点时遇到问题,我都设法使用调试器命令行(也就是输出窗口中的“lldb”提示符)。例如,要在第42行的源文件“client.m”中设置断点,请键入:

(lldb) b client.m:42

除了解决这个特殊问题之外,在命令行上进行调试比任何GUI都提供了更多的灵活性和自动化。一个好的起点是LLDB tutorial。 (完全披露:我是unix和gdb的长期粉丝,所以这里有一些偏见)。

当然,正如其他人提到的那样,确保使用调试符号编译库/依赖项目。希望这可以帮助;祝你好运。

答案 2 :(得分:1)

我会在这里回复Jon-Eric,并补充一点,如果您习惯性地使用Cmd + Enter运行项目,则应考虑切换到Cmd + Y以每次启用gdb。

答案 3 :(得分:0)

这里有一些事情......(有些事情显然不是)

1)确保依赖项目是使用调试符号编译的(我假设它是一个库)

2)确保您的活动可执行文件链接到依赖库的调试版本

3)在调用lib的入口点之前在主项目中设置一个断点,在lib的入口点设置一个bp ...(除了你要打的真正的断点...)

我发现调试库的最佳方法是打开lib项目并将活动可执行文件设置为主项目,然后直接从库项目中单击“构建和调试”。

我希望这有帮助,祝你好运,玩得开心!

答案 4 :(得分:0)

我遇到过与Xcode类似的问题。对我来说,解决方案是确保主项目中还有一个受到攻击的断点(正如肯特在第三点中提到的那样)。我不明白为什么会这样。

您还应该只在项目打开时在项目中设置断点。如果不这样做,他们可能会开始行为不端:在您禁用或删除它们之后仍然停止执行流程,或者在您认为它们被启用时不工作。

答案 5 :(得分:0)

确保选择“Build and Debug ”(对于步骤#4)。 'Go'有时意味着'Run'(断点被禁用),有时意味着'Debug'(断点已启用)。

此外,请确保在调试主项目时保持依赖项目处于打开状态。

答案 6 :(得分:0)

除了关于调试符号的肯定回复之外,请检查主项目的构建设置中的COPY_PHASE_STRIP值,并确保在调试中将其设置为NO。

相关问题