Segmentation fault beim Konstruktor



  • Hallo,

    Ich habe folgendes Problem.
    Ich habe für die Klasse Closure einen Konstruktor mit 2 Argumenten, der folgndermaßen aussieht:

    Closure(Item_set i, Grammar g)
    	{
    	//cout << "Bin im Konstruktor" << endl;
    	init();
    	//cout << "Inztanzvariablen initialisiert" << endl;
    	closure(i,g);
    	};
    

    in der Main rufe ich ihn zu Testzwecken wie folgt auf:

    Rule r1("S NP VP ");
            Grammar g1(datei);
    	Item_set m;
    	m.add_to_set(r1);
            //Bis hierhin läuft alles nachweislich problemlos
    	Closure c1(m,g1);
    

    Laut meiner cout Ausgabe landet er jedoch nie im Konstruktor und bricht an der Stelle der Initialisierung ab.
    Woran könnte das liegen und wie behebe ich das Problem?

    B



  • Könnte am Kopierkonstruktor von Item_set oder Grammar liegen. Aber ich denke es ist jetzt ein idealer Zeitpunkt, einen Debugger einzusetzen.



  • Es ist leider nicht der ideale Zeitpunkt um sich das allererste Mal mit einem Debugger zu beschäftigen.

    Wie meinst du das, es liegt am Kopierkonstruktor? Item_set und Grammar funktionieren doch problemlos. Oo (Ja, Neuling, ja, blöde Fragen ;))



  • Nach dem Code zu urteilen sollte der Fehler im Default-Ctor von Grammar liegen. Aber wie Bashar schon richtig sagte: Genau für solche Fehler gibt es den Debugger.



  • Bisam-R schrieb:

    Es ist leider nicht der ideale Zeitpunkt um sich das allererste Mal mit einem Debugger zu beschäftigen.

    Du brauchst erstmal nur soweit zu kommen dass das Teil im Debugger läuft. Wenn es dann crasht bleibt es im Debugger stehen, und du siehst *wo* genau, und das reicht dann oft schon.


Anmelden zum Antworten