菜鸟教程小白 发表于 2022-12-13 07:24:13

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 &#39;$register == 0x12345678&#39;
</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&#39;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]
查看完整版本: ios - 使用特定队列调用 dispatch_async 时的符号断点