Я использую Eclipse CDT в Windows для разработки кода на C, который собран и протестирован на удаленных системах Linux.В настоящее время код никогда не компилируется в Windows.
Я могу использовать CDT, чтобы запустить удаленный процесс на цели Linux под gdbserver, а затем подключить gdb с хоста Windows.Тем не менее, GDB немедленно завершается с ошибками, такими как:
warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration
of GDB. Attempting to continue with the default i386 settings.
[...]
Remote 'g' packet reply is too long: 74afe9bff0aee9bf02000000f4af4a00a0aee9bf[...]
Отладка между двумя системами Linux работает нормально, поэтому ясно, что я делаю что-то не так на стороне хоста Windows.Мои конкретные вопросы:
Является ли версия gdb Cygwin достаточной для отладки удаленных процессов в Linux, или мне нужен специальный кросс-gdb для запуска его в Windows и работа с процессами Linux?Если да, можно ли где-нибудь достать такой gdb?
Для удаленной отладки с помощью gdb необходимо, чтобы символы были доступны в хост-системе.Какой самый простой способ добиться этого?Могу ли я просто скопировать символы, созданные при сборке на цели Linux, на хост Windows, или мне нужна полная сборка для Windows?Есть ли способ избежать этого требования, чтобы я мог поставить символы только на цель?
Спасибо,
-R
Дополнительная информация: В FAQ по RSE есть несколько указателей, но, к сожалению, я все еще заблокирован.FAQ описывает два подхода:
- Запустить клиент gdb в удаленной системе через ssh.Проблема здесь в том, что определенные поля в модуле запуска отладки CDT привязаны к локальной системе (путь проекта, путь к исполняемому файлу и т. Д.).
- Сборка / получение кросс-отладочной версии gdb, которая поддерживает отладку процессов Linuxиз Windows.Проблема здесь в том, что мало информации о том, как этого добиться.
Я также поднял эту проблему на форуме CDT .