2009-02-10 122 views
27

在XCode中調試程序時,我有幾個CFStringRef變量指向200個字符標記周圍長度的字符串。XCode調試器:顯示長字符串

在調試器中,它只顯示這些字符串的值直到某個長度,然後將它們省略掉。我真的很想看到字符串的全部價值。

是否有一些選項可以配置,因此它不會以任意長度終止它們?

(gdb) print (void)CFShow(myCFString)

或:

+1

難道真的沒有辦法讓GUI顯示字符串的非省略的版本? – 2010-12-15 19:31:56

+0

值得注意的是,調試器顯示帶*轉義字符的字符串*。在控制檯中打印字符串時,不包括轉義字符。 「\」代碼\「」與「代碼」。這100個字符的限制是非常煩人的,因爲它會阻止您複製長JSON字符串,然後立即將該字符串(包括轉義字符)粘貼爲代碼中的測試字符串變量。 – pkamb 2015-01-30 06:32:15

回答

32

在調試控制檯,您可以通過執行類似獲取字符串值

在調試器

(gdb) po (NSString*)myCFString

Either of those will display the entire string's contents to the debugging console. It's probably the easiest way to deal with large, variable-length strings or data structures of any kind.

For more information, the print命令基本上轉儲一些數據結構到控制檯。您也可以調用任何函數或任何其他函數,但由於打印無法訪問函數聲明,因此您必須確保隱式提供它們(如上例所示),否則打印命令將會投訴。

poprint-object的快捷方式,除了Objective-C對象外,它與print相同。它的功能基本如下:

(gdb) print (const char *)[[theObject debugDescription] UTF8String]

This is really useful for examining things like NSData object and NSArray/NSDictionary objects。

有關調試主題的更多信息,請參閱Technical Note TN2124 - Mac OS X Debugging Magic和(從調試器控制檯),您也可以發出幫助命令。

0

如果您在Xcode編譯C++項目中只使用這個命令

PO string_name

相關問題