gpt4 book ai didi

ios - LLDB - 如何在不停止进程的情况下附加到进程

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:21:46 26 4
gpt4 key购买 nike

我正在寻找一种方法来附加到使用 lldb 的进程而不停止它。我正在调试的程序存在竞争条件,我担心暂停会导致更多的熵。

类似的问题,但针对 gdb:gdb attach to a process without stop .

使用的版本:

lldb -v
lldb-900.3.72

最佳答案

这在 x86_64ARMv8-A 上是不可能的(我在这里做了一个假设,但它代表大多数现代操作系统设计/架构)。

一般来说,任何时候进程(暂时忘掉实时的东西)进行系统调用或被中断(在抢占式操作系统中,这可能以多种方式发生)它都会屈服于操作系统,此时有一个在执行返回到该点之前,它可能花在做其他事情上的不确定时间段,这取决于系统状态和调度程序决定的内容(基于时间和优先级等因素)。

您应该立即附加并恢复执行。如果不引入某种形式的抖动,就没有办法做你真正想做的事情(即使启动 LLDB 本身也可能发生在你上次“运行”的进程所在的同一个 CPU 上)。

这就是为什么竞争条件很难调试,因为它们很难一致地重现。有一些方法可以在调试时将抖动降至最低,但它们涉及相当复杂的工具,通常是特定于操作系统的工具。

我还建议查看 ThreadSanitizer 以帮助找到潜在的竞争条件。

关于ios - LLDB - 如何在不停止进程的情况下附加到进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48958487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com