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