Отладка chroot-программы с помощью gdb

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

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

1

Решение

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

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

chroot$ gdbserver :8888 myprogram

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

$ gdb myprogram
(gdb) target remote :8888

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

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

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

2

Другие решения

Других решений пока нет …