2013-12-13 81 views
0

我有一個數組,我想在斷點處打印出來。我已閱讀有關如何使用@ EXP @做到這一點,所以我創建了一個日誌消息斷點,像這樣:使用Xcode斷點記錄(LLDB)顯示變量的值

%B %H count: @(NSUInteger)[myArray count]@ objects: @(const char *)[[myArray description] UTF8String]@ 

這裏還有什麼打印:

-methodName: 33 count: 1 objects: 0x6dec5890 

從我什麼都閱讀,這應該打印出一個包含myArray中的對象的字符串。然而,顯然這沒有發生。我究竟做錯了什麼?

我在Xcode 5.0.2上使用LLDB。如果它很重要,該應用程序是32位。

+0

我可以重現您的問題。看起來「斷點日誌消息」功能有幾個問題。比較http://stackoverflow.com/questions/8059919/how-to-create-a-breakpoints-log-message-action-in-xcode另一個問題,可能的解決方法。 –

+0

感謝您的支持。事實上,我無法使日誌記錄工作,所以這是我最終在調試器命令中使用的:'expr(void)NSLog(@「%@ - count:%u objects [%@]」,( NSString *)NSStringFromSelector(_cmd),(unsigned)[myArray count],myArray)'當然,這不會給我斷點數。 ':-(' –

+2

如果有人在蘋果公司關心,我已經提交了雷達:// 15663740。 –

回答

1

此錯誤已在最新版本的Xcode中修復。 (我在6.1.1)現在你只需要在@s之間放一個數組的名字就可以得到預期的輸出。不需要鑄造!

%B %H count: @[email protected] objects: @[email protected] 

輸出:

-applicationDidFinishLaunching: 1 count: 2 objects: @"(\n one,\n two\n)" 

有點亂與編碼換行,但至少它的工程!

-1

我不明白你在做什麼。 當我想在代碼中打印或預覽一個變量時,我在我的變量之後添加一個斷點。當到達斷點時,我只是將指針移動到變量的名稱上,並且會出現一個小窗口,在那裏我可以看到變量的內容。

這個答案請看:XCode 5 View Debugging Feature

+1

謝謝,但我正在查找數據的變量可以每秒多次命中。並且懸停在我的情況下是不實際的 –

0

爲什麼不創建一個打印你所關心的變量,然後自動繼續Python的斷點動作?

+0

注意提供一些解釋你的意思的代碼嗎?一定要指定它是使用調試器命令行動還是使用日誌消息行動我更喜歡後者,因爲它可以訪問到%B計數變量。 –