无法在控制台中使用po命令(调试区域)

问题描述 投票:3回答:4

突然间我开始随机收到这条消息(但很多时候)

表达式产生错误:警告:/var/folders/53/0z4yfqt16tvbcn0z7f2385n80000gn/T/expr3-d271e2..swift:3:9:警告:从未使用变量'$ __ lldb_error_result'的初始化;考虑将赋值替换为'_'或删除它var $ __ lldb_error_result = __lldb_tmp_error ~~~~ ^ ~~~~~~~~~~~~~~~~~~~~

当我尝试在控制台中键入这样的内容时:

po myObject

所以,控制台只打印上面的消息,而不是给我一些有用的东西......如何解决这个问题,以及导致它的原因?

ios swift xcode debugging lldb
4个回答
3
投票

lldb已在Xcode 10.2中更改。 Apple建议使用'p'或更近的'v'来查看变量的值。

来自Xcode 10.2 Release Notes

LLDB调试器有一个新的命令别名v,用于“frame variable”命令,用于在当前堆栈帧中打印变量。因为它绕过表达式求值程序,所以v可以快得多,并且应优先于p或po。 (40066460)

LLDB Tutorial在名为Examining Stack Frame State的部分中也有很好的信息。

frame variable命令还将对变量执行“对象打印”操作(目前我们只使用对象的“description”方法支持ObjC打印。通过将-o标志传递给frame变量来打开它:

(lldb) frame variable -o self 
(SKTGraphicView *) self = 0x0000000100208b40 
<SKTGraphicView: 0x100208b40>


0
投票

看起来你正在使用swift。升级Xcode时可能会出现此类错误,但不会使用新工具集完全重建所有swift依赖项。如果在清理了所有依赖项(包括任何Pod或Carthage模块等)并在本地重建它们之后,仍然会出现此错误,如果这是一个可以提供的项目,请使用http://bugs.swift.orghttp://bugreporter.apple.com提交错误。我们来看看。


0
投票

使用debugprint命令代替po命令。


0
投票

@ mike-hay的答案,LLDB教程链接已更改为“https://lldb.llvm.org/use/tutorial.html”,但我不允许编辑它,因为编辑太短,我不允许对帖子发表评论,因为我声名太低...

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