为了账号安全,请及时绑定邮箱和手机立即绑定

Android致命信号11(SIGSEGV)为0x636f7d89(代码=1)。怎么能找到它?

Android致命信号11(SIGSEGV)为0x636f7d89(代码=1)。怎么能找到它?

梦里花落0921 2019-07-05 10:33:41
Android致命信号11(SIGSEGV)为0x636f7d89(代码=1)。怎么能找到它?我一直在读其他关于追踪SIGSEGV在Android应用程序中。我计划搜索我的应用程序,寻找与画布使用相关的可能的NullPoint,但我的SIGSEGV每次打开一个不同的内存地址。而且我还见过code=1和code=2..如果内存地址是0x00000000我会有线索的-它是一只NullPoter。我得到的最后一个是code=2:A/libc(4969): Fatal signal 11 (SIGSEGV) at 0x42a637d9 (code=2)对如何追踪这件事有什么建议吗?我有个嫌疑犯,但我还不想用它做实验。我的应用程序使用OSMDroidAPI进行离线映射。OverlayItem类表示映射中的标记/节点。我有一个服务,通过网络收集数据,填充OverlayItem,然后显示在地图上。为了简化我的设计,我将OverlayItem扩展到我自己的NodeOverlayItem类中,其中包括我在UI活动和服务中使用的一些附加属性。这给了我UI和Service的一个项目信息点。当某些事情发生变化时,我使用INTENS向活动广播以刷新UI映射。该活动绑定到该服务,并且有一个获得NodeOverlayItem列表的服务方法。我认为这可能是OSMDroid API对OverlayItem的使用,以及我的服务同时更新节点信息。(并发问题)当我写这篇文章时,我认为这才是真正的问题。令人头疼的不是将Node和OverlayItem从NodeOverlayItem中分离出来,而是该活动将需要来自Node的一些数据,而这些数据是由服务保存的。加上创建活动的时间(onResume等)OverlayItem对象将需要从服务在活动离开时一直维护的Node数据重新创建。例如,启动应用程序,服务收集数据,UI显示它,然后返回到应用程序,活动将需要从最新的服务节点数据中提取并重新创建OverlayItem。我知道这不是个好问题,也不是一个清晰的问题。就像我所有的问题都是利基或模糊的。如果有人对如何解释这些问题有建议SIGSEGV错误,这将是非常感谢!
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

我也得到了这个错误很多次,我解决了它。本机端的内存管理将面临此错误。

您的应用程序正在访问其地址空间之外的内存。这很可能是无效的指针访问。SIGSEGV=本机代码中的分段错误。因为它不是在Java代码中发生的,所以您将不会看到包含详细信息的堆栈跟踪。但是,如果在应用程序进程崩溃后再看看,您可能仍然会在logcat中看到一些堆栈跟踪信息。它不会告诉您文件中的行号,但会告诉您调用链中使用的对象文件和地址。在那里,您经常可以找出代码的哪个区域是有问题的。还可以设置到目标进程的GDB本机连接,并在调试器中捕获它。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 1014 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信