Xcode 4.3.2不会在调试器中显示完整的调用者堆栈,只显示当前函数?

时间:2012-04-25 14:40:14

标签: xcode macos debugging

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

A single stack display

堆栈的输出应该包括调用函数(从iOS中获取,不显示相同的调试问题):

Full stack display

我拥有所有最新设置,“验证构建设置”在没有警告的情况下运行。我使用的默认值是新项目,这里是我的调试方案:

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

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

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

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

2 个答案:

答案 0 :(得分:22)

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

查看Debug Navigator的底部:)

Xcode 4.3.2 Debug Navigator

答案 1 :(得分:3)

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

至少我沿途学到了一些lldb命令。