[C] Programma che funziona solo con il debug

Da JAVA a C# passando per PHP, SQL ed HTML
Avatar utente
Malo
Messaggi: 156
Iscritto il: sabato 3 dicembre 2011, 14:33

[C] Programma che funziona solo con il debug

Messaggio da Malo »

Ciao, sto facendo un programma in C usando Code::blocks. Il programma è composto da 3 file: main.c, lib.c, lib.h. Ho fatto che creare un progetto con code::blocks perchè è l'unico modo per poter effettuare il debug(altrimenti non lo fa). Non capisco proprio perché il programma se compilato e poi eseguito si pianta, mentre invece se eseguo il debug (sempre dopo averlo ricompilato ovviamente) tutto fila lisco e termina come dovrebbe. Cioè in pratica io schiaccio compile/exec e si pianta. Invece se imposto un breackpoint a caso e poi clicco su debug, una volta che lo eseguo tutto arriva alla fine tranquillo. Come mai? Ho ricontrollato tutto mille volte e non trovo errori quindi se con il debug funziona non vedo perché non dovrebbe senza! Come posso fare?
Ecco la mia CONFIGURAZIONE PC:

Alimentatore RASURBO Silent&Power DLP-55.1 - 550 W, CPU AMD Phenom II X4 960T, Mobo ASUSTeK M5A99X EVO, RAM 2x2GB DD3-1333 Corsair, Video ATI HD 6770, HDD Seagate barracuda SATA3 2TB, Case PowerStation Recom, Mouse logitech MX1000, Windows 7 Ultimate, Monitor Samsung LT27A300 27" LED LCD, Audio Dolby digital 5.1 logitech

Immagine

Avatar utente
dino
Messaggi: 16580
Iscritto il: mercoledì 30 novembre 2011, 18:21

Re: [C] Programma che funziona solo con il debug

Messaggio da dino »

Potrebbe essere una questione di librerie che in debug le carica mentre in esecuzione no?
_____________________________
Working harder: http://www.dinofratelli.it
Listen House Music: https://www.dinobrosdj.it
Safety online https://omniadpi.it/

Avatar utente
Malo
Messaggi: 156
Iscritto il: sabato 3 dicembre 2011, 14:33

Re: [C] Programma che funziona solo con il debug

Messaggio da Malo »

potrebbe essere...come verifico però?
Ecco la mia CONFIGURAZIONE PC:

Alimentatore RASURBO Silent&Power DLP-55.1 - 550 W, CPU AMD Phenom II X4 960T, Mobo ASUSTeK M5A99X EVO, RAM 2x2GB DD3-1333 Corsair, Video ATI HD 6770, HDD Seagate barracuda SATA3 2TB, Case PowerStation Recom, Mouse logitech MX1000, Windows 7 Ultimate, Monitor Samsung LT27A300 27" LED LCD, Audio Dolby digital 5.1 logitech

Immagine

Avatar utente
dino
Messaggi: 16580
Iscritto il: mercoledì 30 novembre 2011, 18:21

Re: [C] Programma che funziona solo con il debug

Messaggio da dino »

Questo non lo so... Non sviluppo ijn C da una vita
_____________________________
Working harder: http://www.dinofratelli.it
Listen House Music: https://www.dinobrosdj.it
Safety online https://omniadpi.it/

Avatar utente
Alessio89
Messaggi: 8097
Iscritto il: martedì 29 novembre 2011, 23:47

Re: [C] Programma che funziona solo con il debug

Messaggio da Alessio89 »

Utilizzi estensioni, librerie o direttive proprietarie o macro proprietarie? Perché con lo standard ISO non esiste differenza fra debug e release. Se rimani sempre nello standard ISO allora controlla i range degli array e le operazioni sui puntatori.

Avatar utente
Malo
Messaggi: 156
Iscritto il: sabato 3 dicembre 2011, 14:33

Re: [C] Programma che funziona solo con il debug

Messaggio da Malo »

mah, diciamo che un errore ci deve essere per forza perchè se aumento la dimensione dell'imput mi fa in segmentation fault. Solo che non mi capacito proprio perchè con un input più basso in debug è ok, in release no. Le uniche librerie che uso sono stdio.h, stdlib.h e bon...
Ecco la mia CONFIGURAZIONE PC:

Alimentatore RASURBO Silent&Power DLP-55.1 - 550 W, CPU AMD Phenom II X4 960T, Mobo ASUSTeK M5A99X EVO, RAM 2x2GB DD3-1333 Corsair, Video ATI HD 6770, HDD Seagate barracuda SATA3 2TB, Case PowerStation Recom, Mouse logitech MX1000, Windows 7 Ultimate, Monitor Samsung LT27A300 27" LED LCD, Audio Dolby digital 5.1 logitech

Immagine

Avatar utente
Alessio89
Messaggi: 8097
Iscritto il: martedì 29 novembre 2011, 23:47

Re: [C] Programma che funziona solo con il debug

Messaggio da Alessio89 »

in modalità debug potrebbero aver implementato un'allocazione della memoria e degli array in maniera differente. Ad esempio in modalità debug il compilatore potrebbe lasciare dello spazio fra un array e gli elementi successivi in modo che se vai fuori range il debugger è in grado di segnartelo invece che crashare rovinosamente.

Avatar utente
Malo
Messaggi: 156
Iscritto il: sabato 3 dicembre 2011, 14:33

Re: [C] Programma che funziona solo con il debug

Messaggio da Malo »

può essere quello allora...conta che sto lavorando su diverse matrici ed array tutti allocati in modo dinamico a seconda della dim dell'input...(non è complicato ma sto schiumando)
praticamente c'è un main loop ripetuto tot volte dove fa le sue cose, una di queste è caricare un array in una riga di una matrice. Non so perchè ma alla volta x che esegue questa operazione mi fa segmentation, le altre prima invece gli piace... :angry:
Ecco la mia CONFIGURAZIONE PC:

Alimentatore RASURBO Silent&Power DLP-55.1 - 550 W, CPU AMD Phenom II X4 960T, Mobo ASUSTeK M5A99X EVO, RAM 2x2GB DD3-1333 Corsair, Video ATI HD 6770, HDD Seagate barracuda SATA3 2TB, Case PowerStation Recom, Mouse logitech MX1000, Windows 7 Ultimate, Monitor Samsung LT27A300 27" LED LCD, Audio Dolby digital 5.1 logitech

Immagine

Avatar utente
Alessio89
Messaggi: 8097
Iscritto il: martedì 29 novembre 2011, 23:47

Re: [C] Programma che funziona solo con il debug

Messaggio da Alessio89 »

se vuoi prova a postare il codice. il C l'ho cacato di stricio ma tanto ha praticamente (99%) le stesse regole della parte procedurale del C++.

Avatar utente
Malo
Messaggi: 156
Iscritto il: sabato 3 dicembre 2011, 14:33

Re: [C] Programma che funziona solo con il debug

Messaggio da Malo »

per me va bene! Faccio che postarti i 3 file così facciamo prima...ti ringrazio per la disponibilità :inchino:
tsp_ga.c
tsp_ga_lib.c
tsp_ga_lib.h
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Ecco la mia CONFIGURAZIONE PC:

Alimentatore RASURBO Silent&Power DLP-55.1 - 550 W, CPU AMD Phenom II X4 960T, Mobo ASUSTeK M5A99X EVO, RAM 2x2GB DD3-1333 Corsair, Video ATI HD 6770, HDD Seagate barracuda SATA3 2TB, Case PowerStation Recom, Mouse logitech MX1000, Windows 7 Ultimate, Monitor Samsung LT27A300 27" LED LCD, Audio Dolby digital 5.1 logitech

Immagine

Bloccato