2009-02-10 124 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

相关问题