首页 文章

无法打破符号 - [UIView _viewHierarchyUnpreparedForConstraint:]

提问于
浏览
0

我正在以编程方式添加约束来调试问题 . 当我的应用程序崩溃LLDB告诉我打破 - [UIView _viewHierarchyUnpreparedForConstraint:]进一步调试问题 . 但是,当我在LLDB中添加断点时:

b s -n  -[UIView _viewHierarchyUnpreparedForConstraint:]

我从LLDB收到以下警告:警告:无法解决任何实际位置的断点 .

我还尝试使用Breakpoint导航器选项添加符号断点 .

所以它看起来好像这个符号不存在 . 我怎样才能看到生成的所有符号列表,以确保该符号存在与否?

谢谢你的帮助

-Malena

1 回答

  • 1

    lldb命令行是以空格分隔的,因此如果要将参数或选项值传递给其中包含空格的参数或值,则需要使用引号来保护空格 . 看看这是否有效:

    (lldb) b s -n  "-[UIView _viewHierarchyUnpreparedForConstraint:]"
    

    细心的读者会注意到你输入的命令有"-[UIView"作为-n的选项值然后是悬空参数"_viewHierarchyUnpreparedForConstraint:]"和权利(因为 break set 不带参数)你应该得到一个关于不带参数的中断集的错误 . 这是一个错误......

    要回答您的其他问题,请使用lldb命令:

    (lldb) image dump symtab
    

    将转储程序中的所有符号 . 您可以通过将其添加到命令行来将其范围限定到特定库,例如,这个可能在UIKit中,因此:

    (lldb) image dump symtab UIKit
    

    将只显示UIKit中的符号 . 还有一个按名称查找特定符号的命令 image lookup -n ,但一般情况下断点设置器也可以查找它们 .

相关问题