2016-08-12 67 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',記住你必須把這些選項前的'--'。 –