Xcode断点仅在调试期间设置时命中 我将一个C++ SDK移植到Windows Mac OSX 10.5。我在Xcode中遇到了一个问题,只有在调试时设置断点,某些文件中的断点才会被命中。如果我停止调试,然后重新启动,断点将不再被命中。如果我在不调试时添加它们,它们就不会被击中。这只是在某些文件中,我的断点总是深蓝色的。i、 我分不清会被击中的断点和不会被击中的断点之间的区别

Xcode断点仅在调试期间设置时命中 我将一个C++ SDK移植到Windows Mac OSX 10.5。我在Xcode中遇到了一个问题,只有在调试时设置断点,某些文件中的断点才会被命中。如果我停止调试,然后重新启动,断点将不再被命中。如果我在不调试时添加它们,它们就不会被击中。这只是在某些文件中,我的断点总是深蓝色的。i、 我分不清会被击中的断点和不会被击中的断点之间的区别,c++,xcode,breakpoints,C++,Xcode,Breakpoints,具体来说,我的sdk由各种动态库组成。它们是使用Perforce jam构建的,Perforce jam根据我的操作系统和编译器版本(如Visual Studio的cl.exe和link.exe)调用各种编译和链接可执行文件。我有一个简单的(单元测试)命令行应用程序,它链接到这些动态库并调用其中的代码。Windows上的这个应用程序是一个visualstudio项目,在该项目中,我在库代码上设置断点,并期望它们被命中 我在XCOD3.1.2中创建了与C++ SDLILB链接并调用代码的相同C++

具体来说,我的sdk由各种动态库组成。它们是使用Perforce jam构建的,Perforce jam根据我的操作系统和编译器版本(如Visual Studio的cl.exe和link.exe)调用各种编译和链接可执行文件。我有一个简单的(单元测试)命令行应用程序,它链接到这些动态库并调用其中的代码。Windows上的这个应用程序是一个visualstudio项目,在该项目中,我在库代码上设置断点,并期望它们被命中

我在XCOD3.1.2中创建了与C++ SDLILB链接并调用代码的相同C++命令行实用工具应用程序。有些断点工作正常。我可以在从麻烦代码调用的代码中设置断点,然后跳转到麻烦代码,然后我可以很好地逐步完成。麻烦的代码被编译成与正常工作的代码相同的动态库。它也足够长和复杂,不能作为内联的候选者

我尝试了以下方法:

  • 缓慢关闭加载符号
  • 使用GCC4.0和GCC4.2进行编译
  • 进行全面清洁并关闭
  • 删除xcodeproj包的用户特定文件
  • 重命名文件,使其不会与系统文件冲突
  • 清除断点窗口中的所有内容
  • 创建一个新的Xcode项目
我的应用程序是用DWARF格式在debug中编译的,我的库是用–g标志(以及–v、–arch i386和–fvisibility内联线隐藏)构建的

非常感谢您的帮助。谢谢

更新:很抱歉没有更新此内容,我的Mac端口项目被推迟。我从未解决过这个问题,但发现它实际上只发生在构造函数体中。当我再次遇到这个问题时,我将重新讨论这个问题。

您尝试过这些吗?

这不是一个真正的答案:你应该在苹果官方的bugtracker上做一个bug报告。很有可能你迟早会在那里得到答案,或者这真的是一个bug。

嗨,谢谢你的回复。是的,我几乎尝试了你链接中的所有建议,但没有成功。在两个项目中将-g改为-gdwarf-2并没有解决这个问题。删除“修复并继续”标志也不起作用。我的下一步是向苹果公司提交一个bug。真的不应该这么难!我仍然有问题,我的断点根本不起作用?你解决了吗?