在Xcode中调试程序时,我有几个CFStringRef
变量,它们指向长度约为200个字符的字符串。
在调试器中,它仅显示这些字符串的值到一定长度,然后就用省略号代替了剩下的部分。我非常想看到完整的字符串值。
是否有一些选项可以配置,以便不会在任意长度处终止它们?
在Xcode中调试程序时,我有几个CFStringRef
变量,它们指向长度约为200个字符的字符串。
在调试器中,它仅显示这些字符串的值到一定长度,然后就用省略号代替了剩下的部分。我非常想看到完整的字符串值。
是否有一些选项可以配置,以便不会在任意长度处终止它们?
在调试控制台中,您可以通过执行类似以下代码来获取字符串值:
(gdb) print (void)CFShow(myCFString)
或:
(gdb) po (NSString*)myCFString
其中任意一种方法都可以将整个字符串的内容显示到调试控制台。这可能是处理任何类型的大型可变长度字符串或数据结构最简单的方法。
有关更多信息,调试器中的print
命令基本上会将某些数据结构转储到控制台。您也可以调用任何函数或其他内容,但由于`print`没有访问函数声明的权限,因此必须确保您隐式提供它们(如上述示例所示),否则`print`命令将报错。
po
是print-object
的快捷方式,除了Objective-C对象之外,它与print
相同。它的功能基本上如下:
(gdb) print (const char *)[[theObject debugDescription] UTF8String]
这对于检查像NSData
对象和NSArray
/NSDictionary
对象等内容非常有用。
如果您想了解更多关于调试主题的信息,请参阅Technical Note TN2124 - Mac OS X Debugging Magic,并且(从调试器控制台)您也可以发出help
命令。
po
命令打印到控制台上。您知道保留字符串中转义字符的方法吗? - pkamb要显示非常长的字符串,可以使用来自在Xcode 6调试控制台中打印长字符串的方法
setting set target.max-string-summary-length 10000
print
或po
命令打印您的字符串。print my_string
如果你在Xcode中编译C++项目,只需使用此命令
po string_name