Я работаю над задачей автоматизации, где мне нужно проверить, является ли какое-либо приложение отлаживаемым или нет.Итак, мой рабочий процесс:
- Присоединение LLDB к процессу
- Установка нескольких точек останова
- Выполнение некоторых действий в целевом приложении
- Проверка кадрав LLDB для некоторых ожидаемых выражений
- Отсоединение отладчика из приложения.
Так как мой тестовый скрипт должен переключаться между приложением и отладчиком, я решил запустить LLDB в отдельном (фоновом) процессе и взаимодействовать с ним через именованные каналы.Примерно так:
#!/usr/bin
pipe=/tmp/mypipe
mkfifo $pipe
lldb >out.txt 2>err.txt < $pipe &
Я отправляю команды так: echo "attach -n AppName" > /tmp/mypipe
.Но моя проблема в том, что после выполнения любой команды LLDB завершается.Итак, последние строки в моем out.txt:
Executable module set to "/path/to/application".
Architecture set to: x86_64-apple-macosx.
И LLDB-процесс больше не существует.Есть ли способ сохранить его работоспособным?Спасибо!