应用程序挂在 __psynch_mutexwait

2024-07-01

我们的应用程序似乎半随机地挂在 psynch_mutexwait 处。 它似乎与更新 CoreData 中存储的一堆数据的后台进程有关 - 但我完全无法弄清楚是谁锁定了导致死锁的原因。

以下是 lldb 给我的完整堆栈跟踪 - 这显然是不完整的,并且线程 1 的最后一帧是伪造的。在此之前的几行中,我在该方法中有一个断点,但从未被击中。

有没有什么方法可以知道正在等待什么锁? (或者甚至获得正确的堆栈跟踪?)当然,涉及大量代码,这使得随机 NSLog 语句成为一项艰巨的任务。

(lldb) bt all
* thread #1: tid = 0x2503, 0x39da20fc libsystem_kernel.dylib`__psynch_mutexwait + 24, stop reason = signal SIGSTOP
    frame #0: 0x39da20fc libsystem_kernel.dylib`__psynch_mutexwait + 24
    frame #1: 0x39ceb128 libsystem_c.dylib`pthread_mutex_lock + 392
    frame #2: 0x00022068 OnDeck`-[AttendanceWorkoutsController buildTable](self=0x00000003, _cmd=0x00000000) + 508 at AttendanceWorkoutsController.m:100

  thread #2: tid = 0x2803, 0x39d92648 libsystem_kernel.dylib`kevent64 + 24
    frame #0: 0x39d92648 libsystem_kernel.dylib`kevent64 + 24
    frame #1: 0x39ccb4f0 libdispatch.dylib`_dispatch_mgr_invoke + 796

  thread #5: tid = 0x2b03, 0x39d91eb4 libsystem_kernel.dylib`mach_msg_trap + 20
    frame #0: 0x39d91eb4 libsystem_kernel.dylib`mach_msg_trap + 20
    frame #1: 0x39d9204c libsystem_kernel.dylib`mach_msg + 40

  thread #6: tid = 0x242f, 0x39d91eb4 libsystem_kernel.dylib`mach_msg_trap + 20
    frame #0: 0x39d91eb4 libsystem_kernel.dylib`mach_msg_trap + 20
    frame #1: 0x39d9204c libsystem_kernel.dylib`mach_msg + 40

  thread #7: tid = 0x2c03, 0x39da2594 libsystem_kernel.dylib`select$DARWIN_EXTSN + 20
    frame #0: 0x39da2594 libsystem_kernel.dylib`select$DARWIN_EXTSN + 20
    frame #1: 0x31bff1f6 CoreFoundation`__CFSocketManager + 678

  thread #8: tid = 0x2d03, 0x39da2d98 libsystem_kernel.dylib`__workq_kernreturn + 8
    frame #0: 0x39da2d98 libsystem_kernel.dylib`__workq_kernreturn + 8
    frame #1: 0x39cf0cfa libsystem_c.dylib`_pthread_workq_return + 18
(lldb) 

通过让几个人查看代码,并追踪漫长而复杂的代码路径,我们找到了罪魁祸首。 在后台线程中运行的一种方法是查找并使用一些核心数据对象以及使用主线程上下文。

如果 IOS 能够提供有用的堆栈跟踪,那么肯定会有很大帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序挂在 __psynch_mutexwait 的相关文章

  • 将 std::lock_guard 与 try_lock 一起使用

    有什么办法可以告诉我std lock guard打电话try lock代替lock当它获取互斥锁时 我能想到的唯一方法是使用std adopt lock if mutex try lock Handle failure and return
  • 线程运行如何启动?

    我正在寻找一个关于线程的小例子 为了创建线程 我们可以通过两种方式来实现 Runnable接口或通过扩展Thread 我使用第一种方式 package test public class test implements Runnable p
  • 在故事板中创建自定义 UITableview 部分标题的最佳方法

    目前 我正在故事板中创建一个原型单元 并使用该单元作为节标题 在 tableView viewForHeaderInSection 方法中 我使单元格出队并返回它 我的节标题单元格中有一个 UITextField 和一个 UIButton
  • Qt:将事件发布到 QThread 的正确方法?

    在我的 Qt 应用程序中 我有一个主线程和一个工作线程 工作线程子类QThread并通过处理事件customEvent 这是主线程发送要由工作线程处理的事件的正确方法吗 QThread myWorkerThread QApplication
  • iOS-Charts 如何将 UIImage 放在点旁边

    我想使用 iOS Charts 和 Swift 来绘制一些折线图来显示数据 现在 我有一个要求 在每个点旁边放置一个小图标 现在我可以在图表上添加 UIImage 但问题是如何正确获取每个点的 CGPoint 坐标 如果我改变设备或设备类型
  • UIModalTransitionStyleFlipHorizo​​ntal 横向垂直翻转

    在横向模式下 从一个视图 导航控制器堆栈的一部分 转换到另一个视图作为模态视图 并将 UIModalTransitionStyleFlipHorizo ntal 设置为 modalTransitionStyle 视图在横向模式下垂直翻转 动
  • 文件从 iOS 应用程序传输到 Mac 应用程序?

    是否可以在 Mac 应用程序和 iOS 应用程序之间传输文件 我想通过 Wifi 将 iOS 应用程序中的文档目录中的文件传输到 Mac 应用程序 我该怎么做 嗯 从 iOS 5 开始 就有了 iCloud 由于这仍处于保密协议之下 我只需
  • 使用 NSPredicate 进行反向字符串比较

    我一直在互联网上寻找这个答案 但到目前为止还没有运气 所以我需要咨询这里聪明又友善的人 这是我第一次在这里提问 所以我希望我做得正确 不要重复这个问题 对于我看到的所有示例 搜索字符串是核心数据中存储的内容的子字符串 另一方面 我想实现以下
  • 当应用程序离开后台并在 iOS 和 Android 中返回时,WebView 正在重新加载?

    我有一个小应用程序 它仅包含一个网络视图 我正在使用 url 加载网络视图 但是当我的应用程序进入后台并返回时 网络视图正在重新加载 对我来说 这不应该发生 在 iOS 和 Android 中 当应用程序进入后台时 如何停止 webview
  • Google 跨客户端身份验证是否可以在 iOS 上实现?如果可以,如何实现?

    我正在使用 oAuth2 并且我的 google API 控制台中有一个项目 其中注册了 iOS 客户端和 Web 客户端 我想从我的 iOS 应用程序进行身份验证 并让我的 Web 后端检索访问令牌 以便它可以使用 Google api
  • XCode 5 在 AppStore 验证中崩溃

    我是 iOS 开发新手 很可能错过了一些相关的东西 我有一个在 Xcode 中开发的应用程序 并使用开发设备进行了测试 以便我知道它运行正常 我已在 iTunes Connect 中创建了记录 并完成了启用 等待上传 状态的步骤 在构建设置
  • 解析 Apple Mach O-Linker 错误?

    我正在使用解析框架 突然出现 39 个错误 即使我删除框架 它仍然有错误 我已经检查了构建阶段 设置和路径 但没有任何效果 另外 我正在使用 xcode 4 6 3 我有一台过时的 macbook Ld Users anikakablan
  • WKScriptMessageHandler 不会侦听网页上按钮元素上的“onclick”或“click”事件。网页是使用Reactjs开发的

    我正在使用一个WKWebView在 UIViewController 的视图中使用 url 端点显示托管在服务器上的网页 该网页使用Reactjs 这就是我所掌握的有关该网页的所有信息 该代码创建一个 Web 视图并将该 Web 视图作为控
  • Java 让物体在按住按钮时移动

    如何使 JPanel 在按住按钮时移动并在释放按钮时停止 我尝试过将 thread start 与 Runnable 一起使用以及类似的方式 我总是遇到错误 有人可以帮助我吗 您需要考虑许多重要的因素 按钮的设计初衷并非如此 它们被设计为在
  • 如何使用 Swift 3 使用后台任务?

    我是后台任务的新手 我有一个小工作 我正在获取推文 如果我的应用程序处于后台模式 那么它也应该获取推文 但我不知道如何 我在 Appdelegate didFinishLaunchOption 方法中使用简单的计时器 当我关闭该应用程序时
  • 删除 iOS 中不需要的字符

    我正在填充地址簿中的所有联系人 我必须仅向服务器发送没有国家 地区代码且没有任何特殊字符和空格的电话号码 即纯电话号码 但我的地址簿电话号码采用不同的格式 如下所示 91 99 70 044099 125 91 8605 681220 91
  • NSOperationQueue 指定线程

    我想用一个NSOperationQueue调度 CoreData 操作 然而 操作队列的行为并不总是相同的 例如 它使用libdispatch在使用线程池的 iOS 4 0 OS 10 6 上 并且队列可能并不总是使用相同的线程 如NSMa
  • iOS IAP 无法在纯 ipv6 网络上运行

    我在 Appstore 中有一款 iPhone 游戏 最近尝试使用最新的 Xcode 上传更新版本 但被拒绝 因为应用内购买无法在仅 ipv6 的网络上运行 它在 ipv4 网络上运行良好 ViewController m NSMutabl
  • 如何使用应用程序加载器将我的应用程序提交到应用程序商店?

    如何使用应用程序加载器将我的应用程序发布到 iOS 应用程序商店 我不知道如何让应用程序加载器找到该文件 请告诉我简单的步骤 谢谢 按着这些次序 在 XCode 中 转到Product gt Archive Click the Distri
  • Swift - 将 HTML 文本转换为属性字符串

    在我的一个模块中 我想使用 UILabel 将多语言 HTML 文本 英语和泰米尔语 显示为 NSAttributedString 如果文本是纯英文 我可以按照我的愿望显示它 但我的内容同时包含英语和泰米尔语字符 我该如何处理这种情况 如果

随机推荐

  • Perl:什么时候使用 system() 以及什么时候安装软件包?

    我工作的项目在由系统人员维护的机器上使用 Perl 脚本 安装 Perl 模块等软件包并不是一件容易的任务 您通常必须打电话给有权限的人来执行此操作 等待几天 了解包的 API 然后记住将其安装在每台新安装的配置机器上 多次选择的替代方案只
  • Python字典键(类对象)与多个比较器的比较

    我使用自定义对象作为 python 字典中的键 这些对象有一些默认值hash and eq定义的方法用于默认比较 但在某些功能中我需要使用不同的方式来比较这些对象 那么有什么方法可以覆盖或传递一个新的比较器来仅针对该特定函数进行这些关键比较
  • 从 MySQL 数据库中选择多个字段重复项

    我有一个旧论坛 其中包含具有重复的第一个帖子的线程 可能有不同的回复 我想删除除其中一个线程之外的所有线程 留下观看次数最高的线程 我有以下 SQL 查询来帮助识别重复线程 但我找不到一种方法让它仅列出 xf thread view cou
  • 如何在 React、ES6、Electron 应用程序上使用本机节点模块?

    我有一个 React Electron 应用程序 我希望能够从编译的 ES6 访问本机节点模块 使用 Babel 和 Webpack 例如 当我尝试要求 fs 节点模块访问文件系统时 出现以下错误 ERROR in src app js M
  • Yii 条件关系

    我有一个chat带字段的表 admin TINYINT owner id INTEGER 目标是在 Yii 中建立两个关系 admin gt array self BELONGS TO Admin owner id condition gt
  • 通过 JavaScript 传输事件来调用 :hover 伪类

    这是场景 您有两张图像 它们彼此堆叠在一起 最高阶的 z 索引图像负责处理点击事件 想想 Google 的 Map API 并且是透明的 而下面的图像负责视觉表示 这是一个伪 HTML CSS 表示 div visual container
  • Android + PhoneGap拦截URL(相当于iOS的shouldStartLoadWithRequest)

    我的 PhoneGap 包装的 本地托管的 Sencha Touch 应用程序会进行一些虚假的 URL 回调来与本机包装器进行通信 IE app callback do function a 在iOS中我实现了以下内容 BOOL webVi
  • 从 ASP.NET 插入到 MS Access

    我们正在尝试建立一个专门用于内联网的服务台票务系统 决定使用 Visual Studio 2008 Express 的 ASP NET C 如果需要的话 我们有一个完整版本 没什么花哨的 几页抓取 NTLM 信息 系统信息并将其与问题一起存
  • 手动将行添加到 StreamingHttpResponse (Django)

    我正在使用 Django 的 StreamingHttpResponse 动态传输大型 CSV 文件 根据the docs https docs djangoproject com en 1 11 ref request response
  • SELECT * FROM NEW TABLE 在 Postgres 中等效

    在 DB2 中 我可以执行如下所示的命令来从插入的行中检索信息 SELECT FROM NEW TABLE INSERT INTO phone book VALUES Peter Doe 555 2323 AS t 我如何在 Postgre
  • NSWindow 中的 NSScrollView

    我在 NSWindow 中有一个 NSScrollView 但它似乎被禁用了 它looks就像它会工作一样 但是滚动条是反应迟钝到鼠标或滚轮 当我将完全相同的 NSScrollView 放入新 XCode 项目的窗口中时 它工作得非常完美
  • 如何在 Ionic 中将图像同时放入

    我目前正在开发 Ionic 应用程序 并致力于在 ion header 和 ion content 中实现图像 这是我如何实现的屏幕截图 从屏幕截图中可以看到 离子标题和离子内容内容被隐藏 因为我设置了图像z index到高数字 有人可以建
  • 从表达式创建动态 Linq select 子句

    假设我定义了以下变量 IQueryable
  • 如何将字典中从一个键到下一个键的所有值相加? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个字典 其中 DateTime Now Date 转换为字符串作为键 整数作为值 我需要以某种方式将从一个输入键到下一个键的所有
  • 打破弹性项目内的长单词

    我想打破 div2 内的长单词 div2 和 div3 宽度都不能大于父宽度 即 150px 唯一有效的是word break break all但这也会破坏简短的单词 div1 display flex max width 150px h
  • 是否可以获取 NSMutableAttributedString 的属性和范围列表?

    我创建了一个接受 NSAttributedString 的方法 并且我希望动态创建一个子视图和标签以将字符串放入其中 由于需要确定字体和大小等属性才能正确确定标签的大小 因此我需要确定是否可以迭代已应用于属性字符串的值和范围 我知道我可以单
  • ngx-bootstrap typeahead http 请求返回对象 Object

    我正在尝试构建一个返回 JSON 的服务的预输入 但是我的代码返回 object Object 而不是值 我究竟做错了什么 这似乎与我的 typeaheadoption 未正确映射到结果有关 但我不确定为什么会发生这种情况 这来自 ngx
  • MVC:我应该在哪里格式化数据?

    我从模型 带有数据的数组 获取数据 并且需要以特定格式显示 我需要迭代数组 格式化数据然后显示它 我应该在哪里格式化数据以显示 在模型 控制器还是视图中 谢谢 对数组的迭代并显示数据是在视图中完成的 因此我也会在视图中进行格式化 如果格式化
  • 如何更改 gdb 中的值

    所以我有这个家庭作业代码 我必须使用 gdb 进行调试 我发现了问题 但不知道如何使用gdb来改变它 define ARRAYSIZE 12 for i ARRAYSIZE 2 i gt 0 i for j i j lt ARRAYSIZE
  • 应用程序挂在 __psynch_mutexwait

    我们的应用程序似乎半随机地挂在 psynch mutexwait 处 它似乎与更新 CoreData 中存储的一堆数据的后台进程有关 但我完全无法弄清楚是谁锁定了导致死锁的原因 以下是 lldb 给我的完整堆栈跟踪 这显然是不完整的 并且线