1. Что вы имеете в виду под "отказывался от отладки" ? Были такие же симптомы как я описал? Или в другом виде?
2. Не понял о каких мейкфайлах речь. Это ж эклипс, я не нашел в папке проекта никаких мейк файлов.
В эклипсе есть свойства проекта.
В этих свойствах в опцих компилятора у меня выбрано:
-O0 -Wall -Wa,-adhlns="$@.lst" -c -fmessage-length=0 -mcpu=arm926ej-s -mthumb -g3 -gdwarf-2
то есть если речь про опцию -g то она есть (-g3) и выбран level3: http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html "Level 3 includes extra information, such as all the macro definitions present in the program. Some debuggers support macro expansion when you use -g3. "
Я уже весь лоб разбил об эту пошаговую отладку. В моем случае переход под WIN32 проблему не решил. В целевой системе рутовая собрана с более старыми библиотеками(компилятор GCC 4.1.2), поэтому файл линкую со встроенными новыми библиотеками. Прога работает нормально, но при установке брейкпоинта вылетает в SIGILL.
А gdbserver откуда берешь?
Я брал из комплекта установленного СodeSourcery для виндов, скопировав в отдельную папку на MMC запуская отладку с указанием полного пути до gdbservera.
При использовании buildroot gdbserver ставиться в рутовую соответсвующей галкой в buildroot. Дополнительно устанавливается галка на openssh.
При использовании debian качаем и устнавливаем gdbserver штатными средстави ОС - apt-get install gdbserver. Таким же способом устанавливается openssh.
Из любого современнго Eclipse всё работает на ура. Естественно с указанием внешнего кросс-компилятора и использованием удаленной отладки. В свойствах проекта также необходимо указать gdb-клиента из кросс компилятора, например arm-none-linux-gnueabi-gdb.
Пытаюсь сделать тоже самое на отладочной плате AM335x Starter Kit. Пишу сюда, т.к. в ветке про ARM подобного не нашел. При установке SDK к этой плате ставится необходимый Toolchain. В Eclipse сделал С проект на основе GCC Cross по типу Hello world, указал префикс, пути к компилятору, инклюдникам и либам там где это требуется. Далее собрал проект, всё хорошо, заодно поменял бинарнику права на 777. Целевая плата имеет файловую систему NFS и лежит у меня на хосте. Пытаюсь настроить режим отладки приложений через gdbserver. Создал конфигурацию RSE, приконнектился к плате, всё хорошо. Можно посмотреть запущенные процессы на плате, воспользоваться Ssh Terminal. В Eclipse создал на основе ранее сделанного RSE Debug Configuration. На вкладке Debug Configurations->Debugger->Main прописал путь к gdb из Toolchain и нажал Debug. Исполняемый файл скопировался в файловую систему, затем запустился gdbserver на плате, но на main не встает, выдает следующую ошибку <terminated, exit value: 127>gdb. Привожу два скриншота: окно RSE
и окно Debug.
а выбрано то точно debug ? А не релиз ? Имеется в виду в настройках проекта в режиме debug какой elf файл выбран и какая конфигурация выбрана release или debug...