我正在调试项目中涉及中央调度的问题。在调试过程中,如果有一种在工作被分派到特定队列时收到通知的方法,将会非常有帮助。
有没有办法设置符号断点dispatch_async
有一个条件可以检查调度队列参数是否与我有权访问的其他队列相同?
以下是设置条件断点的方法。 (我还没有对队列做条件,我在这里假设指针相等将Just Work™。)
首先获取你想要的队列的地址,假设它是0x12345678
。然后创建断点:
breakpoint set -n dispatch_async -c '$register == 0x12345678'
Replace $register
具有特定于架构的表达方式。
已更新以显示$arg1
from 吉姆·英厄姆的评论 https://stackoverflow.com/questions/30470217/symbolic-breakpoint-for-when-dispatch-async-is-called-with-a-specific-queue/30497387#comment49150550_30497387
模拟器
- x86:
*(id*)($esp+4)
- x86-64:
$arg1
(aka $rdi
)
Device
- armv7:
$arg1
(aka $r0
)
- arm64:
$arg1
(aka $x0
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)