2015-02-17 27 views
5

Uso un modello Fortran 90 in Ubuntu 14.04. Il compilatore gfortran 95 (gfortran 4: 4.8.2-1ubuntu6) e gcc 4: 4.8.2-1ubuntu6 sono installati da Ubuntu Software Center. Dopo aver eseguito il modello, viene visualizzato il seguente messaggio di errore:SIGFPE: Backtrace di eccezione a virgola mobile per questo errore: 0x7F70C71AF7D7

Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation. 
Backtrace for this error: 
#0 0x7F70C71AF7D7 
#1 0x7F70C71AFDDE 
#2 0x7F70C68EAD3F 
#3 0x7F70C6EB6913 

Qualcuno potrebbe spiegarmi cosa significano questi codici backtrace? Come posso gestire questi errori?

+0

Questi numeri sono valori del puntatore di istruzioni che alcune procedure di svolgimento dello stack vengono trovate nello stack. Puoi (o non essere) in grado di dar loro da mangiare tramite 'addr2line' per ottenere nomi di funzioni e numeri di linea. – tmyklebu

+0

Ho provato addr2line e gdb per ottenere i nomi delle funzioni e dei numeri di riga, ma nessuno dei due l'ha trovato. '(Gdb) info simbolo 0x7F2B31E0D7D7 Nessun simbolo corrisponde 0x7F2B31E0D7D7',' gdb) Info Line * 0x7F2B31E0D7D7 Nessuna linea le informazioni sul numero disponibile per l'indirizzo 0x7f2b31e0d7d7', 'addr2line -e KiD_SC_2D.exe 0x7F2B31E0D7D7 ??: 0 '. C'è un altro modo per gestire questo errore? – Beata

risposta

4

Utilizzare le opzioni -O -Wall -fcheck=all -g -fbacktrace durante la compilazione ed eseguire l'eseguibile. Se questo non fornisce le informazioni necessarie, provare a eseguire il programma in gdb e/o valgrind.