【问题标题】:Xcode breakpoints only hit when set during debuggingXcode 断点仅在调试期间设置时命中
【发布时间】:2010-10-18 08:49:08
【问题描述】:

我正在将 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 包的用户特定文件。
  • 重命名文件,使其不会与系统文件冲突。
  • 清除断点窗口中的所有内容。
  • 创建一个新的 Xcode 项目。

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

我们将不胜感激。谢谢。

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

【问题讨论】:

    标签: c++ xcode breakpoints


    【解决方案1】:

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

    【讨论】:

    • 您好,感谢您的回复。是的,我已经尝试了您链接中建议的几乎所有内容,但没有成功。在两个项目中将 -g 更改为 -gdwarf-2 并没有解决它。也没有删除修复和继续标志。我的下一步是向 Apple 提交错误。真的不应该这么难!
    • 我仍然有问题,我的断点根本不起作用?你解决了吗?
    【解决方案2】:

    不是一个真正的答案:您应该在 Apple 官方 bugtracker 中提交错误报告。您迟早会在那里得到答案的可能性很高 - 或者它可能真的是一个错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多