|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2007
Messaggi: 150
|
[C] Problema file testo linux windows
Allora sto facendo un progetto e devo fare il parsing di un file dimacs... su dev gira senza problemi ma su ubuntu mi da segmenation fault senza indicare la linea dove da' errore. Allora ho notato che questo file se lo apro gedit mi accorgo che a fine linea c'è si il carattere di fine linea, ma anche un altro carattere nella nuova linea, me ne sono accorto perche mi posiziono sulla nuova linea e devo premere due volte il backspace per posizionarmi sulla linea sopra (praticamente cancello questo fantomatico carattere e ci metto io il carattere di fine linea con l'invio) . Facendo questa cosa funziona anche su linux... ma non posso toccare il file, per di piu gli altri editor di testo non mi succede questa cosa... fatto sta che su ubuntu mi da' questa noia... qualche consiglio?
|
|
|
|
|
|
#2 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Codice:
gdb --readnow nomeeseguibile Codice:
break main Un metodo piu' dispendioso, se non vuoi usare un debugger per trovare il punto di crash del programma è quello di gestire il segnale SIGSEGV mediante la famiglia di funzioni signal(), raise(), etc. etc. Questo di darà un controllo piu' completo del comportamento del tuo programma. Questo per quanto riguarda la gestione dei crash. Per quanto riguarda la conversione dei caratteri di EOF, EOLN e NL, non serve che ti ammattisci immettendoli a mano: basta usare i comandi dos2unix quando porti un file da Windows a Linux e unix2dos quando fai l'opposto. Questo ti garantirà di avere sempre il formato corretto senza troppi mal di testa. |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2007
Messaggi: 150
|
Grazie della risposta... comunque il file non lo posso toccare... non è propriamente un file di testo... è un file dimacs che serve per testare le cpu... e non lo posso toccare. Il professore vede se gira su linux, se gira bene se non gira non gli importa nulla... quindi non so proprio cosa fare... il fatto strano è che c'è solo il carattere di \n, altri caratteri di escape non ce ne sono!!!
|
|
|
|
|
|
#4 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
Prova ad avviare il tuo programma in GDB con il comando run senza inserire breakpoints. Al momento del crash, il debugger ti avverte di un un segnale SIGSEGV e lo gestisce interrompendo l'esecuzione sulla linea incriminata. Se il crash avviene in qualche funzione di libreria, probabilmente hai da gestire meglio come leggi il file e dove metti i dati... Non posso essere piu' specifico, ho pochi dettagli sul problema purtroppo. Ultima modifica di mjordan : 27-03-2008 alle 00:44. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:28.




















