当我的应用程序崩溃时,我想保存最新的控制台以进行调试(尤其是读取系统消息,例如无法识别的选择器)
是否可以以编程方式访问控制台?
更新:
我在文档中找到了答案:使用STDERR_FILENO。
“将错误消息记录到Apple系统日志工具(请参阅man 3 asl)。如果STDERR_FILENO文件描述符已被重定向到默认值或将转到tty,它也将被写入。”
答案 0 :(得分:2)
听起来您想要更改标准输出流的目标。我在iOS中从未尝试过,但我希望能够使用freopen()
来做到这一点。这是a SO question that may help。
您还需要在应用中构建一些调试功能,以便轻松恢复输出。例如,您可以将其发布到Web服务器,或让应用程序通过电子邮件发送给您。
答案 1 :(得分:0)
当您的应用在设备中崩溃时,会保存崩溃日志。当您插入设备时,启动XCode,打开“管理器”窗口并单击设备。然后在左侧查找您的设备,并单击“崩溃日志”。与构建时生成的.dSYM文件中的信息一起,您通常可以恢复应用程序崩溃的方式和位置。如果您真的只想在崩溃时将信息保存在XCode的控制台窗口中,只需在控制台窗口内单击,点击Cmd-A(全选)和Cmd-C(复制),然后粘贴到文本编辑器窗口