0

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

b s -n  -[UIView _viewHierarchyUnpreparedForConstraint:]

我从 LLDB 收到以下警告:警告:无法将断点解析到任何实际位置。

我还尝试使用 Breakpoint navigator + 选项添加符号断点。

所以在我看来,这个符号好像不存在。我如何查看生成的所有符号的列表以确保该符号存在与否?

感谢您的帮助

-玛莲娜

4

1 回答 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但通常如果断点设置器找不到它们,图像查找也不会找到它们。

于 2014-11-15T01:23:34.350 回答