Xcode 7 beta调试器没有在Swift代码的断点处显示变量值

时间:2015-08-13 15:08:38

标签: ios xcode debugging

我尝试了问题here的答案,但没有一个帮助:(

我已经安装了Xcode 7 beta 5,调试器在调试swift代码时不会显示变量值。它在Obj-C代码中工作正常。

我尝试将编译器优化级别更改为无,但它没有效果。

enter image description here

7 个答案:

答案 0 :(得分:4)

我仍然在XCode 7.0的最终版本中发现了这个问题。事实证明我的桥接头需要更新,因为其中不再需要其中一个参考。

我发现使用' po'在其中一个变量的调试器中,例如, ' po self.views'。然后调试器为我列出了桥接头中的所有错误。找出问题的奇怪方法,但它确实有效。

编辑:以防万一在解决任何问题后进行干净的构建

答案 1 :(得分:1)

这可能是由于Swift和Objective-C之间的桥接文件存在问题,例如文件{projectName} -Bridging-Header.h。为了确保这一点:

1-在要调试的位置添加断点。

2-到达断点后,在xCode调试输出窗口中的任何对象上写入lldb命令 po 。例如:

po self.view

如果出现问题,您应该看到它的日志,希望您可以去修复它

答案 2 :(得分:0)

Apple在Xcode 7 Beta 6中解决了这个问题

Twitter开发人员提出了一个关于这个问题的链接:https://twittercommunity.com/t/xcode-7-debugger/50792

答案 3 :(得分:0)

我有同样的问题。我在这里通过这个链接解决了这个问题:

Swift debugger does not show variable values when importing ObjC framework

首先尝试在子文件夹中移动所有.framework,正如此帖的作者所说:

  

我收到了一位苹果开发者的消息,说他们已经观察到了   这个问题,可以通过将.framework移动到a来修复   该项目的子文件夹。显然模块..是内置的   仅当.framework位于同一文件夹中时才会出现目录错误   作为 .xcodeproj 又名$(PROJECT_DIR)。

但就我而言,主要问题是 OpenTok 框架。 在断点中添加操作后

post_install do |installer|
  `find Pods -regex 'Pods/OpenTok.*\\.h' -print0 | xargs -0 sed -i '' 's/\\(<\\)OpenTok\\/\\(.*\\)\\(>\\)/\\"\\2\\"/'`
end

日志显示消息:

  

警告:模块myapp中的Swift错误:       Swift在构造此模块的ast上下文时遇到致命错误:: 1:9:注意:包含在文件中   :1:       #import&#34; /Users/me/Developer/myapp-ios/Pods/OpenTok/OpenTok.framework/Headers/OpenTok.h"

最后,我在pod install

中添加了这些代码行
@SerializedName("name_of_json_field")

最后,-keepattributes *Annotation*

答案 4 :(得分:-1)

我遇到了同样的问题。原因是因为我使用的是Crashlytics,这是一个ObjC框架。

尝试删除一些ObjC框架,然后shift + cmd + k清除项目并重新构建它。

之后它应该可以工作。

答案 5 :(得分:-1)

转到项目 - &gt;目标 - &gt;构建设置 - &gt;优化级别 - &gt;调试并将值设置为您想要的任何内容

答案 6 :(得分:-2)

删除Fabric / Crashlytics为我做了。我可以肯定地说,并非所有ObjC导入都会导致此问题。我仍然在我的Swift项目中使用其他一些但由于某些原因Crashlytics在最新测试版中引起了一些问题。我也很早就遇到了编译错误,我不得不为项目关闭bitcode甚至编译。