在 Xcode 中调试程序时,我有几个 CFStringRef
变量指向长度在 200 个字符标记左右的字符串。
在调试器中,它只显示这些字符串的值,直到一定长度,然后将它们省略。我真的很想了解字符串的全部值(value)。
是否有一些我可以配置的选项,这样它就不会以任意长度终止它们?
最佳答案
在调试控制台中,您可以通过执行以下操作来获取字符串值:
(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
命令。
关于string - Xcode调试器: display long strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/531114/