Как я могу отладить открытие моего приложения из файла на OSX? - PullRequest
0 голосов
/ 17 января 2020

Я связал свое приложение с расширением файла, поэтому, когда я дважды щелкаю по этим файлам, он открывает мое приложение. Однако при этом я испытываю cra sh, и я ищу способ преодолеть это и увидеть, что происходит не так. Я использую Xcode, это приложение OSX.

Есть идеи?

1 Ответ

2 голосов
/ 14 февраля 2020

lldb не имеет функции «запуска с открытым AppleEvent», поэтому вы не можете сделать это напрямую.

Но вы можете использовать функцию «ожидания ожидания» lldb, чтобы поймать приложение на ранней стадии запуска. Вы можете сделать это в XCode, включив «Ожидание запуска исполняемого файла» на вкладке «Информация» схемы «Выполнить» целевого приложения. Затем нажмите кнопку «Выполнить» и go в Finder, чтобы запустить ваше приложение, дважды щелкнув один из его файлов.

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

Если по какой-то причине lldb не присоединяется достаточно рано, отредактируйте основную функцию вашего приложения, и в самый верхний вклад:

int go_on = 0;
while(!go_on) {
  sleep(1);
}

Таким образом, ваше приложение остановится при запуске, прежде чем оно обработает событие open, что даст lldb время для подключения. После того, как оно подключено, приостановите приложение в отладчике, выберите поток и фрейм, содержащий эту основную функцию, go для консоли lldb и выполните:

(lldb) expr go_on = 1

, а затем продолжите. Теперь ваше приложение должно завершить sh запуск, обработать событие открытия и вставить sh в отладчик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...