Xcode断点仅在调试期间设置时命中

时间:2009-04-08 16:46:01

标签: c++ xcode breakpoints

我正在将C ++ sdk从Windows移植到Mac OSX 10.5。我在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软件包的用户特定文件。
  • 重命名文件,使其不会与系统文件冲突。
  • 清除Breakpoints窗口中的所有内容。
  • 创建一个新的Xcode项目。

我的应用程序使用DWARF格式在调试中编译,我的库使用-g标志(以及-v,-arch i386和-fvisibility-inlines-hidden)构建。

非常感谢帮助。感谢。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

不是真的答案:你应该在官方的Apple bugtracker中制作一个bug报告。你迟早会得到答案的可能性很高 - 或许它确实是一个错误。