2016-06-28 6 views
1

Ich arbeite an einem einzigen C-Datei-Projekt. Hier ist der Make-Befehl:Keine Debugging-Informationen gefunden von gdb

gcc -std=c99 -ggdb picaca.c -o aca -lm 

Es hat Segmentierungsfehler. Ich benutzte gdb die Segmentierung zu Backtrace, aber es könnte nicht Debug-Informationen finden:

Program received signal SIGSEGV, Segmentation fault. 
0x0000000200419a77 in ??() 

Ich habe doppelt -g in gcc-Befehl zu haben, und stellen Sie ulimit zu unbegrenzt. Wie behebe ich diesen Fehler?

+1

Eine alternative Interpretation von "??" ist, dass Sie eine ungültige Adresse haben, z. B. aufgrund von Stapelkorruption. Was sagt 'bt' und was passiert, wenn Sie' b main' eingeben - weiß es, wo main ist? – kfsone

+1

Es sieht aus wie Stapel Korruption. Versuchen Sie, durch vernünftige Codeabschnitte zu gehen, um zu sehen, wo es passiert, oder starten Sie Ihre ausführbare Datei zunächst unter valgrind. – dbrank0

Antwort

1

Haben Sie Core-Dateien aktiviert? Versuchen Sie 'ulimit -c unlimited' in der Befehlszeile, wenn Sie keine Kerndatei im Ausführungsverzeichnis sehen.