【问题标题】:How can I repeatedly launch an iPhone app from within one LLDB session?如何在一个 LLDB 会话中重复启动 iPhone 应用程序?
【发布时间】:2021-12-29 19:25:33
【问题描述】:

我想在两次运行之间以尽可能少的延迟重复启动应用程序,并从命令行执行此操作。对于 ios-deployxcrun xctrace,由于 LLDB 设置,每次运行大约需要 15 秒。相反,我想在同一个 LLDB 会话中多次运行它(或使用其他更快的解决方案)。随着 ios-deploy 在设备上启动调试服务器,我已经尝试过:

platform select remote-ios --sysroot /path/to/sysroot
process connect process connect connect://127.0.0.1:<port of debugserver>
target create "/local/path/to/App.app

但是,在最后一行之后,我收到一条错误消息,“平台当前未连接”。

有谁知道如何在同一个 LLDB 会话中多次启动 iPhone 应用程序,或者其他更快的方法从非越狱设备的命令行重复启动应用程序?

【问题讨论】:

    标签: lldb


    【解决方案1】:

    process connect 连接到远程设备上正在运行的调试服务器。某些代理必须启动该调试服务器并告诉您希望它正在侦听的端口以使 process connect 工作。

    lldb 实际上并不知道如何在远程 iOS 设备上启动调试服务器。这是 Xcode 负责的事情,然后它告诉 lldb 如何远程连接到调试服务器。但是 Xcode 没有 API 允许其他客户端在远程 iOS 设备上创建调试服务器。我不认为你可以做你想做的事。

    你想要的高层次是某种“重复 N 次”或“重复直到失败”的行为,可以重用同一个 lldb 会话。可能值得向 http://bugs.apple.com 提出增强请求。

    【讨论】:

    • 我已经可以通过ios-deploy启动调试服务器了
    • 然后你可以编写一个基于 python 的命令,使用 Python 的子进程运行 ios-deploy 以在远程启动调试服务器,然后使用 SBTarget.ConnectRemote 附加到任何端口 ios-deploy 给你说话到该调试服务器,然后调用process launch 在设备上启动进程。然后只需在您使用“运行”的任何地方使用该新命令...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2011-06-12
    • 2010-09-29
    • 1970-01-01
    相关资源
    最近更新 更多