Я запускаю 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
Дополнительная информация: RSE FAQ содержит некоторые указания, но, к сожалению, Я все еще заблокирован. В FAQ описаны два подхода:
- Запустите клиент gdb в удаленной системе по ssh. Проблема здесь в том, что определенные поля в средстве запуска отладки CDT привязаны к локальной системе (путь к проекту, путь к исполняемому файлу и т. Д.).
- Создайте / получите версию gdb для кросс-отладки, которая поддерживает отладку процессов Linux из Windows. Проблема здесь в том, что информации о том, как этого добиться, мало.
Я также поднял этот вопрос на форуме CDT а>.