2015-11-13 2 views
1

Я в ситуации, когда программа, которую я должен отлаживать, должна запускаться в chrooted среде. Прямо сейчас я установил gdb в другой корень и скопировал источники, которые работают для элементарной настройки, но не очень удобны, так как я должен повторно синхронизировать источник в любое время, когда я вношу изменения и перекомпилировать, и мне нужно скопировать по всем моим настройкам gdb и т. д.Debug chrooted program with gdb

Есть ли способ запустить отладчик в моей обычной среде, чтобы отлаживать программу, которая работает в chrooted среде? Я на Arch Linux.

+0

Если chroot может получить доступ к сети loopback, вы можете использовать удаленную отладку. – rodrigo

+0

При использовании удаленной отладки поиск источника будет происходить на стороне клиента или на стороне сервера? – Moshev

+0

Клиентская сторона, конечно! – rodrigo

ответ

2

Вы можете использовать удаленную отладку:

В изолированном окружении вам нужно только ваше обычное время работы плюс программы gdbserver. Затем запустите:

chroot$ gdbserver :8888 myprogram 

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

$ gdb myprogram 
(gdb) gdb target :8888 

И вы можете начать отладку.

Мне нравится br main до continue, потому что отладчик будет остановлен в _start, слишком рано, чтобы быть полезным.

PS: Помните о проблемах безопасности при использовании удаленной отладки, поскольку 8888 является прослушивающим TCP-портом.