2009-04-08 33 views
4

我将Windows的C++ sdk移植到Mac OSX 10.5。我在Xcode中遇到了一些问题,在某些文件中,如果我在调试过程中设置它们,只会触发某些文件中的断点。如果我停止调试然后重新启动,断点不再受到影响。如果我在不调试的情况下添加它们,它们不会受到影响。这只是在某些文件中,我的断点总是暗蓝色。即我无法分辨出将要发生的断点和不会发生的断点之间的区别。只有在调试过程中设置Xcode断点

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

我在Xcode 3.1.2中创建了相同的C++命令行实用程序,它链接到sdk dylib并调用它们中的代码。一些断点工作正常。我可以在麻烦的代码中调用的代码中设置断点,然后走出麻烦的代码,然后我可以一步步完成。麻烦的代码被编译到与工作正常的代码相同的dylib中。它也很长很复杂,不能成为内联的候选人。

我已经试过如下:

  • 打开载荷符号懒洋洋地关闭。
  • 与gcc 4.0和gcc 4.2编译。
  • 做一个完整的清洁和关机。
  • 删除xcodeproj软件包的用户特定文件。
  • 重命名这些文件,使它们不会与系统文件发生冲突。
  • 清除断点窗口中的所有内容。
  • 创建一个新的Xcode项目。

我的应用是与DWARF格式的调试编译和我的图书馆与-g标志建立(与-v,-arch i386和沿-fvisibility - 内联隐藏)。

帮助将不胜感激。谢谢。

更新:抱歉没有更新这个,我的Mac端口项目被推迟。我从来没有解决这个问题,但发现它实际上只发生在构造函数体中。当我再次遇到问题时,我会重新审视这个问题。

回答

1

你试过这些吗? Why aren't my breakpoints working?

+0

嗨,谢谢你的回复。是的,我尝试了几乎所有链接中建议的内容,但都没有成功。 在两个项目中更改-g到-gdwarf-2都没有解决问题。也没有删除修复和继续标志。 我的下一步是向Apple提交一个错误。这真的不应该这么难! – Robin 2009-04-09 09:58:09

1

不是一个真正的答案:你应该在官方的Apple bugtracker中做一个错误报告。迟早你会得到答案的机会很高 - 或者它确实是一个错误。

相关问题