Pokaż wyniki 1 do 6 z 6

Temat: Dziwne zachowanie kompilatora

  1. #1
    Avatar rafal44
    rafal44 jest offline logout
    Zarejestrowany
    Dec 2007
    Postów
    291

    Domyślnie Dziwne zachowanie kompilatora

    Używam IDE Dev-C++ 4.9.9.2. Środowisko to jako domyślnego kompilatora używa g++ i innych narzędzi GNU w tym gdb.
    Opcje generowania informacji dla debugera mam domyślnie wyłączoną.
    Kilka razy zdarzyło mi się, że skompilowałem cały projekt (aplikacja okienkowa) uruchamiam - program działa. Zamykam program, okno znika i pojawia się błąd "wystąpił problem z aplikacją xxxx.exe i zostanie ona zamknięta". Takie komunikaty pojawiają się zwykle po próbie odczytu/zapisu niewłaściwego obszaru pamięci (np obiekt nie został utworzony, z została wywołana metoda obiektu; nie otworzono pliku a dane są odczytywane). Kolejna kompilacja i problem nie znika. Po takim czymś włączam opcje generowania informacji dla debugera i kompiluje projekt. Po uruchomieniu debugera program działa bezbłędnie. Kompilacja bez opcji -ggdb - Program działa bezbłędnie. Co może być przyczyną tego, że g++ generuje błędny kod?
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

  2. #2
    Zarejestrowany
    Aug 2009
    Postów
    3

    Domyślnie

    Twój program musi naruszać ochronę pamięci, a wtedy wywoływana jest procedura obsługi wyjątków i zamyka proces. Jeżeli nie twój program to Zapewne Dev-C++ miesza na stosie/stercie. No i zapewne masz też wersję Beta tego narzędzia.

    Co zrobić?
    Najlepiej dodaj Dev-C++ z załadowanym programem który miesza do programu uruchomieniowego takiego jak np. OllyDbg, i sprawdź czy nie narusza ochrony praw dostępu. Jeżeli coś będzie wydawać się "nie tak" to błąd stoi po stronie Dev-C++ w innym wypadku twój program wywołuje procedurę obsługi wyjątków.

  3. #3
    Zarejestrowany
    Jul 2008
    Skąd
    /dev/random
    Postów
    556

    Domyślnie

    Ja stawiam na blad w programie, a nie w kompilatorze

    Sprawdz czy nie chcesz na sile zwolnic jakiegos obszaru pamieci ktorego nie rezerwowales wczesniej tak mi to wyglada i to najczesciej spotykany blad w programach jaki spotykam...
    --
    ToM's Super Fix IT "No Fucking Problem"

  4. #4
    Zarejestrowany
    Aug 2009
    Postów
    3

    Domyślnie

    Na pewno jest to błąd samego środowiska w którym pracujesz, bo kompilator z którego korzysta Dev-C++ czyli "gcc" jest godnym zaufania kompilatorem. No i jestem prawie w 100% pewien że to wina Dev-C++. Nie mam zaufania do tego programu bo jest to wersja BETA oraz czasami wyrzuca błędy "z kosmosu". Mam na myśli że przy kompilacji programu wyświetla błędy które leżą po jego stronie. Dlatego też wystarczyło drobne naruszenie ochrony pamięci, a założę się że i tak było w tym przypadku.

    Najlepsza analiza błędów które następują w pamięci jest poprzez dowolny program uruchomieniowy i dobrą analizę kodu.
    Ostatnio edytowane przez breaker : 08-29-2009 - 13:25

  5. #5
    Avatar rafal44
    rafal44 jest offline logout
    Zarejestrowany
    Dec 2007
    Postów
    291

    Domyślnie

    Na 100% nie ma błędu w kodzie polegającym na błędnym odwołaniu/ zarządzaniu pamięcią. IMO błąd jest kiedy IDE tworzy plik Makefile.win, według którego budowany jest program. Sytuacja zdarza się wtedy gdy kod programu składa się z kilku plików źródłowych. Przez błędny plik Makefile.win linker buduje błędny program.
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

  6. #6
    Zarejestrowany
    Jul 2008
    Skąd
    /dev/random
    Postów
    556

    Domyślnie

    a jak dla mnie jest to dziwne ot nie znam Dev C++ ale bledy srodowiska moga wplynac na zla komunikacje z kompilatorem (nie moznosc kompilacji poprzez przekazanie zlych parametrow) czy zla wspolprace z debugerem...

    Ale nie na gotowy program po kompilacji - przeciez srodowisko nie dodaje czegos do source

    Zreszta cos takiego szybko by wyszlo bo nie uzywa tego jedna osoba i zapewne problemy byly by zglaszane.

    Zreszta nie widzac source to mozemy sobie wrozyc z fusow ja mimo wszystko stawiam na blad w sofcie
    --
    ToM's Super Fix IT "No Fucking Problem"

Podobne wątki

  1. ip dziwne pytanie
    By gelman in forum TCP/IP/Analiza/Badanie
    Odpowiedzi: 12
    Autor: 10-17-2008, 17:08
  2. Bardzo dziwne błędy
    By rafal44 in forum C/C++
    Odpowiedzi: 9
    Autor: 09-07-2008, 11:43
  3. dziwne zmiany daty logowania
    By promenada in forum Newbie - dla początkujących!
    Odpowiedzi: 2
    Autor: 06-09-2008, 18:06
  4. Sniffowanie Sieci LAN<dziwne>
    By eryk in forum Newbie - dla początkujących!
    Odpowiedzi: 7
    Autor: 07-24-2007, 12:36
  5. dziwne odgłosy podczas drukowania
    By Krystian007 in forum Windows
    Odpowiedzi: 3
    Autor: 05-26-2007, 10:10

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj