Xcode调试器有时不显示变量值?

Wil*_*sch 45 debugging xcode

这经常发生在我身上.例如,现在我将调试器停在方法的断点处...并且它根本不显示任何变量值.其他时候,它显示一些,但不显示其他.

谁能解释一下?

Pau*_*l R 39

最常见的原因是您正在尝试调试在启用优化和/或没有调试符号的情况下编译的代码.通常这是因为您尝试调试Release构建而不是Debug构建,但如果您对Debug构建设置进行了不适当的更改,那么它也可能发生在Debug构建中.

另一个不常见的可能性是你已经冲洗了堆栈.

  • 感谢您的回复,但我非常确定这些都不适用于我的情况. (4认同)
  • 我暂时将Run方案切换为Release而不是Debug并忘记了.将其重新固定.谢谢. (4认同)
  • 优化!谢谢,禁用这样做的伎俩. (3认同)

Ani*_*nil 18

我有这个问题(使用Swift),我花了很多时间爬过我的git提交来找到问题的起点.

xcode调试变量无法正常工作或显示


对我来说,我正在使用Facebook Tweaks库,但我(不必要地)从我的project-bridging-header.h文件中导入它.

一旦我摆脱它,我得到了我的调试.

例如,在我的桥接标题中,我有:

#ifndef PROJECT_Bridging_Header_h
#define PROJECT_Bridging_Header_h
// Facebook Tweaks
#import "FBTweak.h"
#import "FBTweakStore.h"
#import "FBTweakCategory.h"
#import "FBTweakCollection.h"
#import "FBTweakViewController.h"
#import "FBTweakShakeWindow.h"
#endif
Run Code Online (Sandbox Code Playgroud)

我删除了所有导入,并像往常一样在我的AppDelegate中导入它import Tweaks.

例如:

#ifndef PROJECT_Bridging_Header_h
#define PROJECT_Bridging_Header_h
// Removed Facebook Tweaks
#endif
Run Code Online (Sandbox Code Playgroud)

在我的 AppDelegate.swift

import Tweaks
Run Code Online (Sandbox Code Playgroud)

这修复了我所有的调试问题,一切都按预期工作,我也可以使用Facebook调整.

注意:我不认为这是Facebook Tweaks本身的问题,您可能有一些其他库导致相同的问题.我们的想法是bridging-header逐一删除您的内容,看看您是否可以缩小问题范围.

我想我在某处读到如果一个库在幕后造成很多问题,这可能会阻止你的调试器工作.

如果这没有帮助,请尝试抓取您的git提交,并查看调试停止的阶段.

关于SO的其他类似问题:

Xcode调试没有显示值

安装CocoaPods Podfile后,Xcode调试器不显示变量信息

如果你有类似的问题,希望这会有所帮助!


小智 8

可能的解决方案是将当前目标Debug方案的Optimization Level设置为none.

项目 - >目标 - >构建设置 - >优化级别 - >调试(或任何适合您的项目) - >无

资源:

/sf/answers/1046394051/


IMF*_*her 6

我使用LLDB时遇到过类似的问题.将其切换回GDB似乎可以解决它.显然这不是解决问题,但无论如何都是一种解决方法

  • 对我来说,变量在断点处执行时正常显示,但异常断点除外.这对屁股来说是一个巨大的痛苦.幸运的是,切换到GDB为我修复了它.为什么苹果不能让他们的Xcode一起行动? (5认同)

dan*_*dlc 5

我的问题是我启用了地址清理程序。禁用消毒剂解决了我在 XCode 8.2.1 中的问题