Контекст
Я отлаживаю модульный тест, который действует как «сервер», создавая дочерние процессы, которые действуют как «клиенты», и они взаимодействуют с сервером через разные порты. . Сам сервер является дочерним процессом «менеджера», который просто порождает его и ждет его завершения. Я могу подключить отладчики к серверному процессу и первому клиентскому процессу и определить, что они оба ждут сообщения. Сервер ожидает сообщения от второго клиента, а я пытаюсь найти место в исходном коде, где второй клиент завис, предположительно до того, как он смог отправить сообщение.
Прочие сведения
Все процессы выполняют один и тот же двоичный файл модульного теста в пользовательской оболочке.
Средой разработки является MacOS. Эмулятор Android с Android версии 12, API версии 32. Я запустил lldb-server --server --listen *:5039 на эмуляторе через оболочку adb. В окне терминала я запустил lldb в нескольких окнах терминала, где ввел «Выбор платформы», «Remote-android», а затем «Platform Connect Connect://:5039». Все это прошло успешно. Я отслеживал процессы и их происхождение с помощью top -ushell -O PPID -s 1 -d 1 в другой оболочке adb.
В одном lldb< /code> экземпляр для каждого процесса, я ввел присоединение процесса --pid [целевой pid]. Это сработало для двух процессов, но не для третьего. Я попытался начать заново с новыми экземплярами lldb и попытался подключиться к проблемному процессу, прежде чем присоединяться к остальным, но операция все равно не разрешена. Я видел в Интернете множество ответов о защите ptrace, но общие решения, связанные с kernel.yama.ptrace_scope, здесь не работают, поскольку эта запись sysctl не существует в Android, как и файл в /proc. Android основан на SELinux, и я нашел некоторые подсказки, такие как ObjectClassesPerms и руководство RedHat по настройке политики разрешений, но у меня возникли проблемы с ее пониманием настолько, чтобы применить ее к моей ситуации. Я также только что запустил getenforce, и результат был Permissive, поэтому я не думаю, что это связано с политикой.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ng-to-atta
Как обойти «Операция не разрешена» на Android при попытке подключиться к процессу с помощью lldb? ⇐ Android
Форум для тех, кто программирует под Android
1729287606
Anonymous
Контекст
Я отлаживаю модульный тест, который действует как «сервер», создавая дочерние процессы, которые действуют как «клиенты», и они взаимодействуют с сервером через разные порты. . Сам сервер является дочерним процессом «менеджера», который просто порождает его и ждет его завершения. Я могу подключить отладчики к серверному процессу и первому клиентскому процессу и определить, что они оба ждут сообщения. Сервер ожидает сообщения от второго клиента, а я пытаюсь найти место в исходном коде, где второй клиент завис, предположительно до того, как он смог отправить сообщение.
Прочие сведения
Все процессы выполняют один и тот же двоичный файл модульного теста в пользовательской оболочке.
Средой разработки является MacOS. Эмулятор Android с Android версии 12, API версии 32. Я запустил lldb-server --server --listen *:5039 на эмуляторе через оболочку adb. В окне терминала я запустил lldb в нескольких окнах терминала, где ввел «Выбор платформы», «Remote-android», а затем «Platform Connect Connect://:5039». Все это прошло успешно. Я отслеживал процессы и их происхождение с помощью top -ushell -O PPID -s 1 -d 1 в другой оболочке adb.
В одном lldb< /code> экземпляр для каждого процесса, я ввел присоединение процесса --pid [целевой pid]. Это сработало для двух процессов, но не для третьего. Я попытался начать заново с новыми экземплярами lldb и попытался подключиться к проблемному процессу, прежде чем присоединяться к остальным, но операция все равно не разрешена. Я видел в Интернете множество ответов о защите ptrace, но общие решения, связанные с kernel.yama.ptrace_scope, здесь не работают, поскольку эта запись sysctl не существует в Android, как и файл в /proc. Android основан на SELinux, и я нашел некоторые подсказки, такие как ObjectClassesPerms и руководство RedHat по настройке политики разрешений, но у меня возникли проблемы с ее пониманием настолько, чтобы применить ее к моей ситуации. Я также только что запустил getenforce, и результат был Permissive, поэтому я не думаю, что это связано с политикой.
Подробнее здесь: [url]https://stackoverflow.com/questions/79103715/how-do-i-circumvent-operation-not-permitted-on-android-when-attempting-to-atta[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия