首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何调试从后台返回时发生的崩溃

如何调试从后台返回时发生的崩溃
EN

Stack Overflow用户
提问于 2019-07-04 01:34:16
回答 5查看 2.1K关注 0票数 6

当从后台通过应用程序图标返回时,就会发生崩溃。

但是,我在控制台日志中看不到任何详细信息。有信号要终止,但我们找不到信号号码。

代码语言:javascript
复制
<FBApplicationProcess: 0x117bcb930; Maixxxx; pid: 1762> exited abnormally via signal.

Process exited: <FBApplicationProcess: 0x117bcb930; Maixxx; pid: -1> -> <FBApplicationProcessExitContext: 0x17103f820; exitReason: signal; terminationReason: (none)>

再现我的坠机的步骤如下:

  1. 通过点击应用程序图标启动应用程序。
  2. 使用应用程序作为正常用户。
  3. 按回家把它放在背景里。
  4. 等几分钟。
  5. 单击跳板屏幕上的应用图标,以便再次使用它。
  6. 应用程序崩溃&退出。

由于崩溃只在从背景返回时发生,并且需要输入后台几分钟,所以我无法在带有lldb的调试模式下运行。

我没有使用任何背景特征。

而且,我在“织物的破折号”中没有看到任何坠毁报告。所以我认为信号处理程序也不能被调用?

如何调查这类问题?

EN

回答 5

Stack Overflow用户

发布于 2019-07-08 10:30:09

这些事情可能会很艰难,我从类似的经历中知道。在不了解你的应用程序的情况下,我只能提供提示而没有明确的答案,但也许这对你有帮助。

尽管有两种尝试“捕获”进程的方法,但使用print直接日志记录的方法却是落后和乏味的。

然而,首先,我要强调,“背景”并不总是一样的,不幸的是,人们使用这个词往往很松散。取决于导致崩溃的状态转换,您可能会运气不佳,必须使用手动日志进行简单的实验。应用程序可以在后台,即不在前台,但仍在运行。在附加调试器时通常是这种情况,否则调试器无法完成它的工作。或者,它们可以被操作系统暂停(甚至终止)。调试器可以防止这种情况,您可能已经知道了。

对你有帮助的两件事是:

  1. 如果您使用后台提取,即“从后台模式返回”(正如您描述的那样),那么您可以在构建方案的"Run“配置部分激活”由于后台获取事件而启动“选项。
  2. 从主屏幕上运行你的应用程序,用Home按钮把它放到后台,等一会儿(你可能已经这样做了,以获得崩溃何时会发生的感觉)。您的应用程序最终会进入暂停状态(但您没有办法在任何地方看到AFAIK)。与其通过多任务UI再次将其附加到前台,不如通过“调试附加到进程”菜单再次附加调试器。这将使您的应用程序从挂起状态返回到后台状态,在该状态下,崩溃可能真的发生(如果从后台到前台,您可能会像往常一样调试它)。希望调试器能及时完成对它的附加,否则我就没有想法了。:(

我本人还没有遇到过这个问题,但我知道背景问题可能会很棘手。也许讨论对你也有帮助(我也从那里获取了我的部分信息)。

票数 3
EN

Stack Overflow用户

发布于 2019-07-07 10:59:34

在实际设备上以调试模式运行应用程序。按“主页”按钮将应用程序发送到后台并继续调试。然后,您可以将应用程序带到前台并继续调试,或者在applicationWillEnterForeground上放置一个断点。

票数 0
EN

Stack Overflow用户

发布于 2019-07-12 09:39:25

你不能在真正的设备上调试这个。当调试器被附加时,您的应用程序将永远不会进入真实设备中的后台模式。

您可以尝试在模拟器上调试此功能。无论如何,请检查类属性,并将属性设置为“强”,以确保这不会因为缺少属性而发生。

我读过几个StackOverflow问题,这些问题都有FBApplicationProcess。通常情况下,这是在应用程序启动时缺少数组之类的。

诚挚的问候。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56879635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档