GDB SIGSEGV ???



  • Wenn ich mein Programm debuggen will, erhalte ich die Meldung:

    Programm received signal SIGSEGV, Segmentation fault.

    Der Compiler gibt keine errors oder warnings.
    Lasse ich das Programm ausserhalb des Debuggers laufen funktioniert es einwandfrei. Würde den Fehler aber trotzdem gerne beseitigen. Welche Möglichkeiten gibt es, den Fehler zu lokalisieren.
    Kenne den GDB auch nicht im Detail.
    Ich weiss auch nicht, wo ich anfangen soll zu suchen, da mir als Fehler das Programmende angegeben wird.

    Danke



  • Segmentation Faults werden auch nicht vom Compiler erkannt idr. Der Compiler erkennt normalerweise nur Syntax Fehler.

    Du kannst details darüber erfahren, wo der Fehler aufgetretten ist, wenn du die bt Funktion benutzt (oder bt f um alle Variablen Inhalte zu erfahren).

    Schau dir aber mal das GDB Manual an



  • Hallo kingruedi,

    danke. Habe im manual nachgesehen und finde den Fehler nicht.
    Habe zum testen mal das nachfolgende Miniprogramm mit gdb debuggt. Selbst da habe ich den SIGSEGV. Habe es mit allen auskommentierte oder ohne versucht. Selbst das system("Pause") war schon draussen.
    Kann es mir langsam nicht erklären.
    Hast Du (oder jemand anders) vielleicht noch eine Idee?

    Danke

    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    //  char Test[] = "1234.35";
    //  float test;
    
    //  test = atof(Test);
    //  cout << test << endl;
    
      system("PAUSE");
      return 0;
    }
    


  • wahrscheinlich irgend ein Problem im GDB, versuch den am besten mal neu zu installieren



  • Das Miniprogramm muss so aussehen

    int main() {
        return 0;
    }
    


  • C++-Puristen mögen einwenden, daß return 0; nicht notwendig ist.



  • IMHO liegt das an GDB. Das ist bei mir auch, egal was ich debuggen will 😞



  • int main() {}
    

    Wenn der Fehler immer noch kommt liegt's 100 % ig nicht am code 😃



  • @Chickenman:
    Danke für den Hinweis. So werde ich die weitere Fehlersuche auf meinem Rechner erstmal aufgeben.
    Neu Installieren brachte auch keinen Erfolg.

    Wie debuggt Ihr denn Eure Software wenn dbg nicht geht?
    Immer Variablen anzeigen lassen mit "cout << i << endl;" ist mir auf die Dauer zu müsam.

    @Chickenman:
    @volkard:
    Seid Ihr wirklich mitten in der Nacht hier im Forum oder stimmt die Uhr nicht (was ich eigentlich nicht glaube)?

    Gruß
    aheim



  • das hat schon alles seine richtigkeit mit den uhrzeiten.

    Wie debuggt Ihr denn Eure Software wenn dbg nicht geht?
    Immer Variablen anzeigen lassen mit "cout << i << endl;" ist mir auf die Dauer zu müsam.

    Wann muss man schon mal seine Software debuggen? Das ist ja wohl ziemlich selten und da kann man dann auch mal ein bisschen mehr aufwand betreiben.

    google mal nach dem fehler und du findest sicher die lösung.



  • Troll.



  • 🙂



  • @richtigkeit:
    Deine Argumentation verstehe ich nicht.
    Wenn ich z.B. eine Schleife durchlaufe möchte im mir den Inhalt der Variablen ansehen bzw. wie diese sich verändern.
    Oder bei verschiedenen If-Verzeigungen möchte ich mir auch die Variablen ansehen. So habe ich, zumindest bisher, immer meine Progrmmierfehler entdeckt.
    Ich möchte das ganze nicht Assembler debuggen.

    Bin gerade beim Googlen. War aber noch nicht erfolgreich.

    @Bashar:
    Was meinst Du mit Troll.

    [ Dieser Beitrag wurde am 11.11.2002 um 12:31 Uhr von aheim editiert. ]


Anmelden zum Antworten