Отладка версии выпуска приложения OSX через LLDB - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь отладить настольное приложение OSX (Ma c os catalina 10.15.3) через LLDB.

lldb path/to/Electron.app
>>> Current executable set to 'path/to/Electron.app' (x86_64).

После этого я могу успешно добавить точки останова в отладчик, но когда я попробуйте запустить приложение с run или process launch, оно всегда дает мне:

error: process exited with status -1 (Error 1)

Также другая проблема с подключением к pid. Это дает мне ошибку и не может присоединиться к процессу.

lldb -p 41324
>>> error: attach failed: Error 1

Почему я не могу разобрать программу внутри отладчика?

Ответы [ 2 ]

2 голосов
/ 23 апреля 2020

В macOS отладчики могут подключаться к процессу только в том случае, если этот процесс пометил себя - с соответствующим правом - как готовый к отладке. Xcode обычно собирает сборки Debug с этим правом, а сборки выпуска без него. Когда lldb пытается подключиться к процессу, который не хочет отлаживаться, вы видите эту ошибку. Это ошибка с низкой информацией, потому что агент, который запрещает присоединение, отключен от lldb и не может предоставить нам дополнительную информацию.

Обратите внимание, что вам не нужно запустить программу, чтобы разобрать его. Команда disassemble работает, когда вы загрузили двоичный файл, а также при его отладке.

0 голосов
/ 24 апреля 2020

Я просто нахожу способ отладки и не ограничиваю никакой root доступностью ... Речь идет о защите целостности системы Apple https://support.apple.com/en-us/HT204899

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

Вот статья о том, как отключить защиту целостности системы https://gist.github.com/gravitylow/fb595186ce6068537a6e9da6d8b5b96d

...