如何调试LLDB中的成员变量(即数组,字典)?

时间:2016-04-07 06:46:38

标签: ios xcode lldb

我在接口中声明了一个全局数组/字典,如下所示。

@interface ViewController ()
{

    NSDictionary *dictionary;

    NSArray *array;

}

我正在进行API调用并在这些数组中存储值。字典。我想在运行时打印LLDB中的数组/字典的内容。

当我尝试打印这些全局变量时,它会给我以下错误。

(lldb) po assigneeArr
error: warning: Stopped in a context claiming to capture an Objective-C object pointer, but 'self' isn't available; pretending we are in a generic context
error: use of undeclared identifier 'assigneeArr'
error: 1 errors parsing expression

那么如何调试这个全局声明的变量??

enter image description here

3 个答案:

答案 0 :(得分:2)

那些不是全局变量;它们是实例变量,因此您需要ViewController的实例才能看到它们的值。

获得实例后,就像使用->运算符一样简单(vc就是实例):

po vc->dictionary

注意:我建议使用下划线来为实例变量的名称添加前缀,以避免与参数和局部变量混淆。

答案 1 :(得分:2)

最后通过更改 Apple LLVM 7.1语言模块中的启用Clang模块调试解决了我的问题,如以下屏幕截图

Enable Clang Module Debugging

参考:https://stackoverflow.com/a/36176158/4014369

答案 2 :(得分:1)

请执行以下步骤:
1.按键盘 Command + Shift + y。它将打开项目的调试区域。
2.在调试区域的右下角,您可以找到已删除邮件的图标。在“废纸篓”图标旁边,您可以找到两个选项,例如隐藏变量视图隐藏控制台。两者都打开(它将显示蓝色边框)
3.将断点放在ViewController上使用词典/数组的位置。
4.您可以在调试区域的左侧找到字典/数组值。
5.请右键单击词典/数组。您将获得第一个选项即字典/数组的打印描述
6.点击它后,您将在控制台中获得全部价值。 (调试区右侧)

您也可以参考下面的屏幕截图。

enter image description here

相关问题