2016-08-12 33 views
0

的动态数组的自定义功能,我有我需要里面LLDB打印,而在断点结构的动态分配的数组。所有这些都发生在ObjC之外的一些纯C代码中。LLDB:如何让那个漂亮的打印结构

我写了一个静态函数,它的打印作业,虽然我可以把它里面LLDB,这将只打印前约60线默默停止。有时,除非我在LLDB中再次按Enter,否则它不会打印任何内容。我认为这是由于不知何故线程,但我想这样做函数内部dispatch_async没有任何成功 - 它不会打印出任何东西。

因此,我期待到替代解决方案(可能是Python脚本)来获取数组的一个漂亮的印刷,因为它是我的调试工作是至关重要的。

回答

1

你说的是一样的东西:

struct MyStruct {/* some stuff */}; 
struct MyStruct *struct_ptr = malloc(100 * sizeof(struct MyStruct)); 

,并要打印struct_ptr,如果你做了:

struct MyStruct struct_arr[100]; 

如果你是LLDB的Xcode 8.0之前,你可以这样做用:

(LLDB)存储器读取-c 100 -t MYSTRUCT struct_ptr

而如果y OU拥有的Xcode 8.0测试版的一个,你可以使用新的粒子阵列命令:

(LLDB)粒子阵列100 struct_ptr

+0

我希望在打印输出以获得更多的控制权,但这个作品辉煌!值得一提的是,对于更大的阵列(或更好更大的结构),需要设置set target.max-memory-read-size 1048576,或者一些足够容纳数据的值。 – CatalinM

+0

parray只是'expression -Z - '的别名,所以如果您想要使用其他格式化选项,只需将命令完全拼出,并且可以添加“expression”命令提供的任何格式选项。见'帮助expression',记住你必须把这些选项前的'--'。 –