9

Xcode 4.3.2 不会在调试器中显示 Mac OS X 应用程序的调用程序堆栈。在下图中是我所指的问题,堆栈仅包含当前函数:

单栈显示

堆栈的输出应该包括调用者函数(取自没有显示相同调试问题的 iOS):

全栈显示

我拥有所有最新设置,“验证构建设置”运行时没有警告。我几乎使用默认值,因为它们用于新项目,这里它们用于我的调试方案:

  • 架构 = 32 位英特尔
  • SDKROOT = macOS
  • 调试信息 = DWARF
  • 部署目标 = 10.5
  • 在复制期间去除调试符号 = NO
  • LD_RUNPATH_SEARCH_PATHS = @loader_path/../Frameworks
  • ALWAYS_SEARCH_USER_PATHS = 否
  • 优化级别 = 无
  • 默认隐藏的符号 = NO
  • 垃圾收集 = 必需
  • GCC_PRECOMPILE_PREFIX_HEADER = 是
  • GCC_PREFIX_HEADER = MyHeader_Prefix.h
  • WARNING_CFLAGS = -Wmost -Wno-four-char-constants -Wno-unknown-pragmas
  • IBC_WARNINGS = 否
  • IBC_Strip_nibs = 否

在“编辑方案”下使用不同的调试器,GDB over LLDB 有同样的问题。将编译器切换到 LLVM 也没有效果。

清除派生数据和清理项目没有帮助。从 /var/folders/ 中删除预编译信息也被证明是不成功的。

这是一个复杂的问题,我只是想知道是否有人有类似的经历并能够解决它。因为它已经工作了多年,直到最近才停止工作。

4

2 回答 2

22

您可以调整调用堆栈显示的详细程度。

查看调试导航器的底部 :)

Xcode 4.3.2 调试导航器

于 2012-04-25T15:19:45.257 回答
3

这是一篇旧帖子,但我在 Xcode 7.2.1 上遇到了同样的问题。事实证明,我在窗格底部的过滤器搜索栏中有一些旧文本。一旦我清除了它,它就会按预期工作。

至少我一路上学到了一些 lldb 命令。

于 2016-02-25T22:25:14.340 回答