首页 > 解决方案 > 如何在 xcode 中使用 lldb sbapi

问题描述

`lldb::SBDebugger::Initialize();
lldb::SBListener sbListener;
lldb::SBTarget sbTarget;
lldb::SBError sbError;

sbTarget.ConnectRemote(sbListener, "connect://127.0.0.1:3333", nullptr, sbError);
if (sbError.IsValid()) {
    printf("%s\n", sbError.GetCString());
    //got an error   "SBTarget is invalid"
}`

xcode 11.6 连接 ios13.3.1 出现错误“SBTarget 无效”如何在 xcode 中使用 lldb sbapi

标签: lldb

解决方案


这不是 Xcode 中支持的 lldb 使用。

Xcode 对您手工制作的新调试器一无所知,并且由于 Xcode 是将调试器连接到控制台窗口的工具,因此它不知道为您提供与它们交互的方法。

此外,lldb 是一个事件驱动的框架,但是您的新目标连接到一个 Xcode 一无所知的事件侦听器,因此它不会知道驱动其事件循环。

即使您确实设法让 Xcode 中的一个调试器等待新目标的事件,Xcode 也希望每个调试器有一个目标,因此如果您导致第二个目标的事件出现,Xcode 只会感到困惑。

我认为您真正想要做的是自定义启动顺序(基本上是 Xcode 的 Build & Run 按钮的 Run 部分的操作脚本)。这是一个完全合理的增强请求。如果您有这样的动力,请随时提交错误报告。这些天来,您似乎为此目的使用了反馈助手应用程序。看:

https://developer.apple.com/bug-reporting/

但是如果没有 Xcode 的合作,我认为你不会有太多的运气。


推荐阅读