在Mac的lldb控制台中格式化parray命令的输出

时间:2018-11-15 08:13:58

标签: xcode debugging formatting lldb

我正在使用lldb parray命令given here来显示数组(结构内部的指针,数组大小由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个元素)吗?

1 个答案:

答案 0 :(得分:1)

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)

当然,编号已关闭(但是您还是不想看到它……)