【问题标题】:Xcode 4.3.2 will not show full caller stack in debugger, only current function?Xcode 4.3.2 不会在调试器中显示完整的调用者堆栈,只显示当前函数?
【发布时间】:2012-05-06 06:38:20
【问题描述】:

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

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

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

  • 架构 = 32 位英特尔
  • SDKROOT = macosx
  • 调试信息 = DWARF
  • 部署目标 = 10.5
  • 在复制期间去除调试符号 = 否
  • LD_RUNPATH_SEARCH_PATHS = @loader_path/../Frameworks
  • ALWAYS_SEARCH_USER_PATHS = 否
  • 优化级别 = 无
  • 默认隐藏符号 = 否
  • 垃圾收集 = 必需
  • 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/ 中删除预编译信息也被证明是不成功的。

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

【问题讨论】:

    标签: xcode macos debugging


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。我从来不知道存在的环境。简单的事情很容易错过。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-09-15
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      相关资源
      最近更新 更多