Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95

    [C++] Debug: ok Release: crash

    Salve gente! Sto letteralmente perdendo la testa dietro un problema.
    Sto lavorando su un bel po' di codice, e ho riscontrato un errore a Run-time
    Il problema, è che se lancio la modalità debug per scovare l'errore....l'errore non c'è più! Fila tutto liscio! Cosa puo' causare questo insolito comportamento?
    Utilizzo Visual C++ 2005 ex
    Grazie!

  2. #2
    E come facciamo a capire che problema c'è se non mostri neanche una riga di codice?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95
    hum...il codice non credo che serva, se non per creare ulteriore confusione!
    E poi il problema è che avvio in debug funziona, mentre normalmente no...perciò non dovrebbe essere un problema di codice no?

  4. #4
    Il codice serve per ricreare le condizioni... e in ogni caso problemi di questo genere spesso derivano da codice errato (tipo puntatori non inizializzati che a debug sono automaticamente inizializzati in una certa maniera e a release no). Peraltro aiuterebbe anche sapere che errore ti viene fuori esattamente.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95
    Allora il mio caso è pittosto disperato. Perchè ho scritto tutto il codice avviando in debug! E adesso ho quelle 400 righe di codice e non so che fare per capire dove è / ci sono l'errore/i
    Avete qualche consiglio per queste situazioni?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95
    Ah, se avvio in debug, quando chiudo l'applicazione ho il seguente errore:


    HEAP[Demo_Smoke.exe]: Heap block at 00ABD098 modified at 00ABD0A1 past requested size of 1
    Windows ha generato un punto di interruzione in Demo_Smoke.exe.

    Ciò può essere dovuto a un danneggiamento dell'heap e indica un errore in Demo_Smoke.exe o in una qualunque delle DLL che ha caricato.

    Controllare la finestra di output per ulteriori informazioni diagnostiche.
    Windows ha generato un punto di interruzione in Demo_Smoke.exe.

    Ciò può essere dovuto a un danneggiamento dell'heap e indica un errore in Demo_Smoke.exe o in una qualunque delle DLL che ha caricato.

    Controllare la finestra di output per ulteriori informazioni diagnostiche.
    Il programma '[2196] Demo_Smoke.exe: Nativo' è terminato con il codice 0 (0x0).

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    In poche parole, sembra un problema di allocazione/liberazione di memoria non corretto.

    Pero' confermo quello che ha detto MItaly ... se non mostri il codice, non si puo' fare nulla.


  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    95
    Urca...allora se il problema è un semplice caccia all'errore, me la sbrigo da solo, sarà un lavoro un po' lunghetto...
    Però non avede idea di come poter fare a eseguire una sottospecie di "debug" che mi indichi dove avviene l'errore a run-time ma magari eviti quelle circostanze che inducono l'applicazione a non crashare?

  9. #9
    Controlla attentamente i punti in cui allochi e deallochi dinamicamente memoria; verifica in particolare che tutta la memoria allocata, qualunque percorso segua l'applicazione, venga deallocata, ma soprattutto controlla che non ci siano dellocazioni di puntatori che potrebbero non essere inizializzati correttamente o che puntano a memoria non allocata dinamicamente o non allocata direttamente dalla tua applicazione,
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da cadue
    Urca...allora se il problema è un semplice caccia all'errore, me la sbrigo da solo
    Ma che problema c'e' a mostrare il codice? Almeno la parte dove pensi che ci sia il problema ...?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.