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