2017-02-09 63 views
10

Czy ktoś wie, co oznacza ten błąd?Błąd GDB: Wybrana architektura i386 nie jest zgodny z raportowaną architekturą docelową. I386: x86-64

enter image description here

pracuję z Netbeans 8.0, gdb 7.8.1 na Linux Machine. Wszystko było dobrze, aż dwa dni temu, nagle zacząłem dostawać ten błąd, gdy zaczynam t debugować i nie mam zielonego pojęcia, co to znaczy.
Póki co, próbuję wyczyścić i zresetować wszystko, co mogłem myśleć: ponowna instalacja netbeans, wyczyszczenie wszystkich lokalnych plików, ponowne ustawienie kodu, zresetowanie wszystkich punktów przerwania i tak dalej.
Czy ktoś mógłby mi pomóc zrozumieć, co oznacza ten błąd? Nigdy nie ustawiłem tych punktów przerwania, skąd bierze je Netbeans?

góry dzięki,
Rachel pokazuje

edytować

Więc teraz mam trochę więcej szczegółów: Kiedy próbuję debugowania moją aplikację bezpośrednio z GDB, bez netbeans Jestem następujący błąd:

Starting program: ....
warning: Selected architecture i386 is not compatible with reported target architecture i386:x86-64
warning: Architecture rejected target-supplied description
Warning:
Cannot insert breakpoint -1. Temporarily disabling shared library breakpoints: breakpoint #-1 Cannot insert breakpoint 1. Cannot access memory at address 0x8081527

Jak mogę się dowiedzieć, jaki kod \ flaga w kompilacji powoduje, że moja aplikacja to i386? jak mogę wymusić na x86_64?

Jeszcze raz dziękuję.

+0

Ale rozwijałeś swój kod przed tym, prawda? A kiedy pojawi się ten komunikat? –

+0

Istnieje plik dziennika NetBeans. Na moim komputerze jest to '~/.netbeans/8.2/var/log' – HEKTO

+0

Może trzeba wyczyścić punkty przerwania z poprzedniej sesji. Zobacz okno debugowania/punktów przerwania i usuń wszelkie punkty przerwania. – dbrank0

Odpowiedz

6

OK, instalacja gdb na mojej maszynie została skręcona. Nie ma szans, żeby ktokolwiek mógł to sobie wyobrazić. Przeniosłem się na inną maszynę i wszystko jest teraz dobre.

0

Myślę, że zaktualizowałeś system, a najnowsza wersja glib nie obsługuje aplikacji 32-bitowych.

Czy można znaleźć znalezisko, aby sprawdzić, które pliki we wszystkich katalogach bin i lib zostały zmienione w ciągu ostatnich 2 dni? Jeśli kiedyś było to obsługiwane, ale wersja ulepszona nie, to aplikacja, która była (prawdopodobnie bez twojej wiedzy) skompilowana jako 32-bitowa, nie będzie ważnym celem dla wszystkich standardowych narzędzi w pudełku.

Użytkownik określa docelową architekturę za pomocą -m32 lub -m64. Sprawdź, czy możesz określić go jawnie, jeśli kompilujesz i debugujesz na różnych komputerach.

+0

Sprawdziłem moją aplikację i wszystkie udostępnione biblioteki, których używa - wszystkie są x32. jakikolwiek inny pomysł? – RRR