LINUX.ORG.RU

Отладка Chrome-like приложений

 


0

1

Допустим, есть основная программа. Она запускает дополнительные программы-плагины и общается с ними (это могут быть пайпы, сокеты, stdin/stdout). Как отлаживать процессы-плагины?

Их нельзя запустить самих по себе, их должен запустить основной процесс.

★★★★★

а что за прога/плагины и что именно ты хочешь отлаживать ты не скажешь, нет?

вариантов масса, но ты забыл, что ЛОР - это не техподдержка

anonymous
()

Как отлаживать процессы-плагины?

Трудно и мучительно. Либо printf'ы, либо цепляешься отладчиком к процессу-хосту.

i-rinat ★★★★★
()

Их нельзя запустить самих по себе, их должен запустить основной процесс.

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

и да, укажи язык программирования

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

Вообще, конечно, это совсем не то, чего ты хочешь (по крайней мере - не то, что следует из описания), но - можно завести режим, в котором обмен с ними логируется. Тогда ты сможешь воспроизвести проблему, после чего - запустить плагин отдельно и ввести его в идентичное состояние.

Но - лютый костыль, думаю.

alex4321
()
Ответ на: комментарий от alex4321

Но - лютый костыль, думаю.

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

Deleted
()

Запускаешь основную прогу под отладчиком, перехватываешь обращения к fork/exec, и сразу после их старта аттачишь к ним отладчик.

Или втупую - подменяешь бинари плагинов скриптами-обертками, которые пускают плагины под отладчиком.

tailgunner ★★★★★
()

в тестах делаешь моко-стаб запускающей программы, вынимаешь наружу результаты ее вызовов, проверяешь их ассертами-експектами, либо наоборот, моко-стабишь плагины, подделываешь нужные методы, контролируешь их вызовы хост-программой из теста

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.