Ошибка GDB: выбранная архитектура i386 несовместима с сообщенной целевой архитектурой i386:x86-64
кто-нибудь знает, что означает эта ошибка?
Я работаю с Netbeans 8.0, gdb 7.8.1 на машине Linux. Все было хорошо до двух дней назад, затем я внезапно начал получать эту ошибку, когда я начинаю отладку t, и я понятия не имею, что это значит.
До сих пор я пытаюсь очистить и сбросить все, о чем я мог думать: переустановить netbeans, очистить все локальные файлы, снова перезагрузить мой код, снять все точки останова и так далее и так далее на.
Может ли кто-нибудь помочь мне понять, что означает эта ошибка? Я никогда не устанавливал эти точки останова, откуда Netbeans берет их?
заранее спасибо,
Рейчел!--1-->
редактировать
Итак, теперь у меня есть немного больше деталей: Когда я пытаюсь отладить свое приложение непосредственно с помощью GDB, без netbeans я получаю следующую ошибку:
при запуске программы: ....
предупреждение: выбранная архитектура i386 не совместим с сообщенной целевой архитектурой i386: x86-64
предупреждение: архитектура отклонена целевое описание
Внимание:
Не могу вставить точку останова -1. Временное отключение точек останова общей библиотеки: контрольная точка № -1 Не удается вставить точку останова 1. Нет доступа к памяти в адрес 0x8081527
Как я могу выяснить, какой кодфлаг в компиляции делает мое приложение i386? как я могу заставить его архитектуру x86_64?
спасибо снова.
2 ответов
хорошо, установка gdb на моей машине была завинчена. Никто и представить себе не может. Я перешел на другую машину, и теперь все хорошо.
Я думаю, вы обновили систему, и последняя версия glib не поддерживает 32-битные приложения.
можете ли вы найти, чтобы узнать, какие файлы во всех bin
и lib
справочники в системе были изменены в течение последних 2 дней? Если он использовался для его поддержки, но обновленная версия этого не делает, то приложение, которое было (вероятно, без вашего ведома) скомпилировано 32-битным, не будет допустимой целью для всех стандартных инструментов на коробке.
вы указываете целевую архитектуру с помощью -m32
или -m64
. Посмотрите, можно ли указать его явно, если вы компилируете и отлаживаете на разных машинах.