我正在调试我的项目中涉及大型中央调度的问题。在调试它时,如果有一种方法可以在工作被分派(dispatch)到特定队列时得到通知,这将非常有帮助。
有没有办法在 dispatch_async 上设置符号断点,条件是可以检查调度队列参数是否与我有权访问的其他队列相同?
Best Answer-推荐答案 strong>
以下是设置条件断点的方法。 (我还没有对队列做条件,我在这里假设指针相等将起作用™。)
首先获取你想要的队列的地址,假设它是0x12345678 。然后创建一个断点:
breakpoint set -n dispatch_async -c '$register == 0x12345678'
将 $register 替换为特定于架构的表达式。
更新为显示来自 Jim Ingham's comment 的 $arg1
模拟器
- x86:
*(id*)($esp+4)
- x86-64:
$arg1 (又名$rdi )
设备
- armv7:
$arg1 (又名 $r0 )
- arm64:
$arg1 (又名$x0 )
关于ios - 使用特定队列调用 dispatch_async 时的符号断点,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/30470217/
|