iPhone:帮助。从GDB中提取stderr /消息并复制到字符串

时间:2010-06-28 06:36:16

标签: iphone xcode stderr

所以整个想法就是这样。我需要将这些调试控制台消息保存到某些字符串,然后将其写入文本文件。我对写入文本文件部分没有问题,因为我将使用writeData但是我对第一部分有问题。

在控制台中我在UIImage中打开损坏的图像文件时看到这些错误消息: :Bogus Huffman表定义 要么 :IDAT:CRC错误

如何从控制台中提取这些信息并将它们复制到字符串中,因为我需要记录这些信息是一个状态文件。有可能吗?

我尝试过[error localizedDescription],如果它无法打开图像,但我得到的字符串是Null。

另外,我用过了 freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],“a +”,stderr); 但问题是它通过文件路径将数据直接写入文本文件或日志文件。我想知道我是否可以将其保存为字符串,以便我可以自定义我的日志文件而不是与stderr相同的文件。

更新:

好吧我有一个想法,使用freopen方法,我可以不使用“a +”将它附加到日志文件并使用其他方式重复覆盖日志文件。然后我可以调用另一个函数来读取该文件并抓住错误消息。

第二部分应该没问题,但我需要第一部分的帮助。除了“a +”,我还能用什么?抱歉,我不确定所有这些stderr的东西。

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

我认为不可能以这种方式覆盖文件描述符。您可以通过定义自己的NSLog来覆盖NSLog,但这不会捕获写入文件描述符的所有内容。