gpt4 book ai didi

ios - 如何在附加到 iOS 的 lldb 中手动生成核心转储(或等效文件)

转载 作者:技术小花猫 更新时间:2023-10-29 10:23:36 24 4
gpt4 key购买 nike

有时我会尝试追踪 iOS 应用程序中非常罕见的错误。经过数小时的尝试重现后,我会在调试器中点击它,结果在调试时 xcode 或 lldb 崩溃了(通常是在单步执行 C++ 代码时)。这太令人气愤了。

使用 gdb,您可以使用 generate-core-dump 创建文件的核心转储,这样我就可以在 gdb 中重新加载它,至少可以查看所有内存。我想要的是能够在 lldb 中做类似的事情,这样当 xcode 崩溃时(在最糟糕的时候它总是倾向于这样做)我可以恢复我的调试 session 而不必重现崩溃。

该应用程序在未越狱的 iPhone 上运行,因此我无法访问操作系统来执行诸如从那里转储内存之类的操作。

一个可能的答案是只使用 gdb 而不是 lldb,但我认为这会导致一些我现在不记得的其他问题,而且它没有一些在 lldb 中有用的功能。

最佳答案

更新:2014 年秋季发布的 Xcode 6 在 lldb 中包含一个新的 process save-core 命令——lldb 现在可以生成用户进程的核心转储。例如(lldb) 处理 save-core/tmp/corefile 并稍等片刻。

Xcode 5 和更早版本的 lldb 的原始答案是:

此功能尚未在 lldb 中实现。就此而言,此功能也未在 Apple 版本的 gdb 中实现。

虽然不是一个普遍要求的功能,但其他人说它也很有用。希望有人有足够的动力将该功能添加到 lldb。我不确定它在 iOS 设备上的运行情况如何,因为它将涉及通过一种对于大数据传输效率不高的协议(protocol)将大量数据传输到 Mac - 我预计它会非常慢.

核心文件可以用lldb -c/tmp/corefile打开

关于ios - 如何在附加到 iOS 的 lldb 中手动生成核心转储(或等效文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com