Il baco fantasma

di il
3 risposte

Il baco fantasma

Ciao a tutti,

sono nuovo del forum e spero di trovare qualcuno che possa aiutarmi a risolvere un problema non chiarissimo...
Ho sviluppato un software in C (Windows con Dev-Cpp (gcc 4.1.2)) che presenta un baco che non sono riuscito a individuare.
Non riesco a individuare perchè il codice sembra corretto (lo abbiamo rivisto in 2) e perchè sotto debug (gdb) tutto FUNZIONA CORRETTAMENTE; sotto debug non presenta alcun problema, quindi non ho niente da poter tracciare e analizzare.

Il problema si presenta in una funzione creata da me, chiamata dal main in un ciclo while; indipendentemente dai dati che passo alla funzione, la prima esecuzione va sempre a buon fine, la successiva no

Qualcuno ha consigli?

3 Risposte

  • Re: Il baco fantasma

    Posta il frammento di codice del ciclo while e magari anche quello della funzione, magari ti posso aiutare
  • Re: Il baco fantasma

    Potrebbe essere un buffer overflow o underflow, aperte questo se non so casa dirti.
  • Re: Il baco fantasma

    Ciao,

    Senza un po'di codice è difficile indicarti dove stia l'inghippo, la cosa migliore, come ti suggeriscono è proprio quella di postare qualche spezzone...

    L'idea è proprio quella di un buffer overflow o di un uso ottimistico della memoria (allochi/deallochi qualcosa in questo ciclo? scrivi in strutture con delle memcpy/strcpy? Usi delle strlen come dimensione per degli spostamenti in memoria?).
    Se la prima esecuzione va a buon fine e la seconda no, probabilmente hai scritto dove non dovevi, hai sporcato qualcosa che non era il caso di sporcare (qualche globale ad esempio), oppure hai un clash di nomi tra variabili locali e globali (pensi di usarne una e ne usi un'altra). Questi i motivi forse più probabili...

    Ciaociao
Devi accedere o registrarti per scrivere nel forum
3 risposte