我在我的项目中调试涉及大中央调度的问题。在调试时,如果在将工作分派到特定队列时获得通知,那将非常有帮助。
是否有某种方法可以在dispatch_async
上设置一个符号断点,其条件可以检查调度队列参数是否与我有权访问的其他队列相同?
答案 0 :(得分:1)
以下是设置条件断点的方法。 (我没有在队列上做过条件,我在这里假设指针相等就是Just Work™。)
首先获取所需队列的地址,假设它是0x12345678
。然后创建一个断点:
breakpoint set -n dispatch_async -c '$register == 0x12345678'
将$register
替换为特定于架构的表达式。
已更新以显示Jim Ingham's comment
中的$arg1
模拟器
*(id*)($esp+4)
$arg1
(又名$rdi
)设备
$arg1
(又名$r0
)$arg1
(又名$x0
)答案 1 :(得分:0)
如果在队列上设置标签,则只需在正在执行的块内的字符串匹配上设置条件断点。有时候我会像这样记录它。
override def onError(request: RequestHeader, ex: Throwable) = {
Future.successful(InternalServerError(
views.html.errorPage(ex)
))
}