У меня со проблема со сборкой GBD для запуске на контроллере, на котором linux с версией ядра: 2.6.11 и, как я понял, процессор на нём i486.
при запуске команды uname -a:
...... i486 unknown
я скачал исходники gdb (разные версии 7.2, 6.5) и пытаюсь собрать gdb из linux для этого контроллера. Смотрел все возможные manual'ы, например http://rus-linux.net/lib.php?name=/MyLDP/algol/gdb-remote.html
Как мне правильно нужно прописать configure ?
я пробовал варианты сборки с указанием:
--target --host
когда ставлю LDFLAGS='-static' вообще прерывается на configure и пишет что нет компилятора. Как мне нужно правильно указать все флаги?
Может ли быть такое что я как-то криво собрал libncurses.so.5 ? Хотя она отвечает за ввода/вывод и gdb когда просто набираешь ./gdb нормально запускается, но когда начинаю отладку сразу segmentation fault.
Причём после запуска gdb и segmentation fault на нём, все бинарники на контроллере тоже выдают segmentation fault, видимо он как-то ядро влияет - помогает только перезагрузка.
О, я тебя с этим вопросом на hashcode видел ) А скачать собранный gdb что мешает? Например, вытащить из пакета слаки/дебиана/еще чего-нибудь близкого по версиям зависимостей.
я вот посмотрел сейчас исходники gdb, да у меня такое ощущение, что он сам падает из-за dlopen, потому я забил поиск по его коду и там эта функция много где вызывается
Ограничься по началу сборкой gdbserver, так как у него минимум зависимостей.
Постарайся, чтобы gdbserver и gdb у тебя были из одной и той же версии gdb (исходников). Определись что у тебя за окружение на железке,
(glibc? uclibc? версии библиотек?), попытайся построить такое же у себя
на компе в чруте. Потому что багосовместимость, старое ядро (<2.6.16),
могут влиять, делая твои бинарники ABI-несовместимыми. Попробуй также
отыскать тот тулчейн, которым все это когда-то собиралось. Или сделай свой,
используя хедеры ядра от 2.6.11 и соответствующие версии библиотек.
Так как у тебя все рамках x86, это не будет сложно, просто используй 32-битную систему для этого, дабы не увеличивать трудности.
у меня такая проблема. Если собрать helloworld в котором открывается so либа, то в нём валится dlopen, т.е. при вызове dlopen сразу же segmentation fault. Я посмотрел исходник gdb там есть вызовы dlopen - может в это еще проблема?
Мне gdbserver --help был интересен. Но судя по всему это пройдет.
Сам gdb имеет внутри себя массу отладочных средств.
dlopen скорее всего не важен в данном случае.
После старта gdb можно попытаться понять где возникает проблема за счет «set debug <tab><tab> и выбрать интересные варианты. Например, set debug target, set debug infrun и т.п.