как использовать lldb sbapi в xcode

#lldb

#lldb

Вопрос:

 `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("%sn", sbError.GetCString());
    //got an error   "SBTarget is invalid"
}`
  

xcode 11.6 connect ios13.3.1 получил сообщение об ошибке «SBTarget недействителен»
как использовать lldb sbapi в xcode

Комментарии:

1. Добро пожаловать в Stack Overflow. Пожалуйста, добавьте краткое описание, код, ошибки ваших поисковых / исследовательских работ, как предлагается.

Ответ №1:

Это не поддерживаемое использование lldb в Xcode.

Xcode ничего не знает о новых отладчиках, которые вы создаете вручную, а поскольку именно Xcode подключает отладчики к окну консоли, он не знает, как предоставить вам способ взаимодействия с ними.

Кроме того, lldb — это платформа, управляемая событиями, но ваша новая цель подключена к прослушивателю событий, о котором Xcode ничего не знает, поэтому он не будет знать, как управлять своим циклом событий.

Даже если вам удалось заставить один из отладчиков в Xcode ждать событий вашей новой цели, Xcode ожидает одну цель для каждого отладчика, поэтому, если вы вызовете события для отображения второй цели, Xcode просто запутается.

Я думаю, что вы действительно хотите настроить последовательность запуска (по сути, сценарий действия части запуска кнопки сборки и запуска Xcode). Это вполне разумный запрос на улучшение. Если вы так мотивированы, не стесняйтесь отправлять сообщение об ошибке. В наши дни похоже, что для этой цели вы используете приложение Feedback Assistant. Смотрите:

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

Но я не думаю, что вам повезет в этом без сотрудничества с Xcode.

Комментарии:

1. Обратите внимание, существует множество других способов использования SB API в Xcode. Вы можете добавить команды на основе Python для улучшения работы с командной строкой. Вы можете добавить обратные вызовы точек останова на основе Python, распознаватели кадров и т. Д. Чего вы не можете сделать, так это создать совершенно новый сеанс отладки за спиной Xcode.