首页 > 解决方案 > 在 mac 的 lldb 控制台中格式化 parray 命令的输出

问题描述

我正在使用此处给出的 lldb parray 命令显示一个数组(结构内的指针,数组大小由 calloc 定义)

这以以下格式向我显示了数组的值:

(float *) $0 = 0x123456789 {  
 (float) [0] = 0.0012   
 (float) [1] = 0.123456   
 (float) [2] = 0.0012   
 (float) [3] = 0.123456   
 .  
 .  
 .  

我只想显示数组的值

0.0012   
0.123456    
0.0012   
0.123456    
.  
.  
.  

lldb 控制台怎么办?我正在使用objective-c。

另外,是否可以只显示一系列值(例如从第 100 个到第 150 个元素)?

标签: xcodedebuggingformattinglldb

解决方案


expr命令无法控制是否打印聚合对象的子元素的名称/类型。 parray只是该expr命令的一种特殊用途。所以你不能用内置命令来做到这一点。

你可以很容易地编写一个基于 python 的命令来转储你想要的数组的输出。

也可以随时向http://bugs.llvm.org提交增强请求以添加此类选项。

您可以通过执行以下操作对显示范围进行排序:

(lldb) parray 4 &array[10]
(int *) $2 = 0x0000000100300218 {
  (int) [0] = 10
  (int) [1] = 11
  (int) [2] = 12
  (int) [3] = 13
(lldb)

当然,编号已关闭(但无论如何您都不想看到...)


推荐阅读