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

问题描述 投票:24回答:8

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

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

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

enter image description here

ios xcode debugging
8个回答
4
投票

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

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

编辑:以防万一在修复任何问题后做一个干净的构建


1
投票

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

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

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

po self.view

如果有问题你应该看到它的日志,希望你可以去解决它


0
投票

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

Twitter开发者:https://twittercommunity.com/t/xcode-7-debugger/50792有一个关于这个问题的链接


0
投票

@Breek链接的线程包含解决方案 - Twitter已经发布了针对此的修复程序。将Crashlytics从3.1.x升级到3.2修复了Xcode 7 GM种子上的调试器。如果由于某种原因您无法升级Crashlytics,您应该能够将线程中指示的头文件编辑为临时解决方法;也就是说,将Crashlytics.h中的#import <Fabric/FABAttributes.h>改为@import Fabric;


0
投票

我遇到过同样的问题。我在这里从这个链接解决了它:

Swift debugger does not show variable values when importing ObjC framework

首先尝试在子文件夹中移动所有.framework,因为这篇文章的作者说:

我从Apple开发人员那里得到一条消息,说他们已经观察到了这个问题,并且可以通过将.framework移动到项目的子文件夹来修复它。显然,只有当.framework与.xcodeproj又名$(PROJECT_DIR)在同一文件夹中时,才会出现模块..内置目录错误。

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

po self 

日志显示消息:

警告:模块myapp中的Swift错误:Swift在构造此模块的ast上下文时出现致命错误:: 1:9:注意:包含在文件中:1:#import“/ Users / me / Developer / myapp-ios / Pods / OpenTok / OpenTok.framework /头/ OpenTok.h”

最后我在Podfile中添加了这些代码行:

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

最后,pod install


-1
投票

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

尝试删除一些ObjC框架,然后shift + cmd + k清理您的项目并重新生成它。

它应该在那之后工作。


-1
投票

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


-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.