(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210301787.X (22)申请日 2022.03.24 (30)优先权数据 17/351,331 2021.0 6.18 US (71)申请人 达音网络科技 (上海) 有限公司 地址 200131 上海市浦东 新区中国 (上海) 自由贸易试验区华申路180号1幢2层 2009室 (72)发明人 王伟波 周成 郝连福  (74)专利代理 机构 上海光华专利事务所(普通 合伙) 31219 专利代理师 余明伟 郭婧婧 (51)Int.Cl. G06F 11/36(2006.01) G06F 9/445(2018.01) (54)发明名称 独立自动检测崩溃的软件开发工具包 (57)摘要 本发明为独立自动检测崩溃的软件开发工 具包, 提供一种改进的SDK, 使得SDK自身可以在 崩溃时判断该崩溃是否与其相关。 所述SDK包括 一组API和一个向操作系统注册的崩溃处理程 序。 每个API都是可由计算机软件应用程序访问 的接口。 每个API在入口处确定当前线 程ID, 如果 所述当前线程ID不在线 程ID及其对应的API调用 计数器列表中, 则将其插入到列表中。 每个线程 ID对应于一个API调用计 数器, API调用计数器在 API入口处递增1, 在API出口处递减1。 SDK还记 录 其内部创建的线程。 在发生崩溃时, 执行崩溃处 理程序。 如果崩溃线程属于内部线程, 则确定崩 溃与SDK有关; 否则进一步判断崩溃线程ID对应 的API调用计数器大于零, 也确定为崩溃与 SDK有 关。 权利要求书2页 说明书5页 附图7页 CN 115495339 A 2022.12.20 CN 115495339 A 1.一种软件开发工具包, 其包括: 1)第一API, 所述API: (a)在所述第一API的入口处确定当前线程的线程 ID, 所述当前线程 运行所述第一API; (b)在调用所述第一API后, 将所述线程 ID所对应的API调用计数器增 加1; 以及 (c)在退出所述第一API之前, 将所述线程 ID所对应的API调用计数器减少1; 2)崩溃处 理程序, 所述崩溃处 理程序: (a)从运行在计算机上的操作系统 处接收崩溃 ID, 所述崩溃 ID对应于一次崩溃; (b)从所述崩溃 ID中确定崩溃线程 ID; (c)确定所述崩溃线程ID是否存在于线程ID和其对应的API调用计数器组成的列表中; 以及 (d)如果所述崩溃线程ID存在于线程ID和其对应的API调用计数器组成的列表中, 并且 其对应的API调用计数器大于零, 则提供SDK相关崩溃指示符, 所述SDK相关崩溃指示符表明 所述崩溃是由所述S DK引起的; 以及 3)管理器, 所述管理器向所述操作系统注册所述崩溃处理程序, 所述SDK由在所述计算 机上运行的计算机软件应用程序进行加载。 2.根据权利要求1所述的软件开发工具包, 其中所述崩溃处理程序通过互联网, 向在服 务器系统上运行的服 务器软件应用程序提供 所述SDK相关崩溃指示符。 3.根据权利要求1所述的软件开发工具包, 其中所述第一API: 1)确定所述线程ID是否存在于所述线程ID及其对应的API调用计数器的成对列表中, 其中所述列表被初始化 为空白; 以及 2)如果所述线程ID不在所述列表中, 则将所述线程ID和其对应的API调用计数器插入 至所述列表中。 4.根据权利要求2所述的软件开发工具包, 其包括第二API, 其中: 1)所述管理器创建S DK内部线程, 所述S DK内部线程具有S DK内部线程 ID; 2)所述管理器还 存储所述SDK内部线程 ID并维护S DK内部线程 ID集合; 3)所述崩溃处 理程序检查崩溃线程 ID是否存在于S DK内部线程 ID集合中; 以及 4)如果崩溃线程ID存在于SDK内部线程ID集合中, 则所述崩溃处理程序 提供SDK相关崩 溃指示符。 5.根据权利要求4所述的软件工具开发包, 其中, 所述崩溃处理程序通过互联网, 向在 服务器系统上运行的服 务器软件应用程序提供 所述SDK相关崩溃指示符。 6.一种用于确定崩溃是否与 软件开发工具包相关的计算机实现的方法, 所述方法由所 述软件开发工具包执 行, 包括: 1)向运行在计算机上的操作系统注册所述SDK的崩溃处理程序, 所述SDK由运行在所述 计算机上的计算机软件应用程序进行加载; 2)在所述SDK的第一API入口处确定当前线程的线程ID, 所述当前线程运行所述第一 API; 3)调用所述第一API后, 将所述线程 ID所对应的API调用计数器增 加1; 4)在退出所述第一API之前, 将所述线程 ID所对应的API调用计数器减少1; 5)从运行在计算机上的操作系统 处接收崩溃 ID, 所述崩溃 ID对应于一次崩溃;权 利 要 求 书 1/2 页 2 CN 115495339 A 26)从所述崩溃 ID中确定崩溃线程 ID; 7)确定所述崩溃线程 ID是否存在于线程 ID及其对应的API调用计数器列表中; 以及 8)如果所述崩溃线程ID在线程ID及其对应的API调用计数器列表中, 并且其对应的API 调用计数器大于零, 则提供SDK相关崩溃指示符, 所述SDK相关崩溃指示符表明所述崩溃是 由所述SDK引起。 7.根据权利要求6所述的方法, 其中, 通过互联网向在服务器系统上运行的服务器软件 应用程序提供 所述SDK相关崩溃指示符。 8.根据权利要求6所述的方法, 还 包括: 1)确定所述线程ID是否存在于所述线程ID及其对应的API调用计数器的成对列表中; 以及 2)如果所述线程ID不在所述列表中, 则将所述线程ID及其对应的API调用计数器插入 到所述列表中。 9.根据权利要求6所述的方法, 还 包括: 1)创建SDK内部线程, 该 所述SDK内部线程由S DK内部线程 ID进行标识; 2)存储所述SDK内部线程 ID并维护S DK内部线程 ID集合; 3)检查崩溃线程 ID是否存在于S DK内部线程 ID集合中; 以及 4)如果崩溃线程 ID存在于S DK内部线程 ID集合中, 则提供S DK相关崩溃指示符。 10.根据权利要求9所述的方法, 其中, 通过互联网向在服务器系统上运行的服务器软 件应用程序提供S DK相关崩溃指示符。权 利 要 求 书 2/2 页 3 CN 115495339 A 3

.PDF文档 专利 独立自动检测崩溃的软件开发工具包

文档预览
中文文档 15 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 独立自动检测崩溃的软件开发工具包 第 1 页 专利 独立自动检测崩溃的软件开发工具包 第 2 页 专利 独立自动检测崩溃的软件开发工具包 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:06:37上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。