Qt Creator: in debug non si blocca mentre in esecuzione normale si blocca dopo un certo tempo



  • Buongiorno.
    Succede che se eseguo il programma in modalità debug, senza nessun breakpoint, il programma gira e non si blocca, se invece lo eseguo in esecuzione normale, dopo qualche minuto di esecuzione si blocca e dice: "The program has unexpectedly finished.".
    Cosa posso fare per capire qual è il punto di interruzione ?



  • Senza stack trace e' impossibile fare supposizioni.

    I candidati principali:

    • Usi un puntatore non inzializzato
    • Usi un puntatore nullo
    • Accedi a un area di memoria non allocata (capita se usi gli array C-style. std::array/std::vector aiutano qui)


  • Se i puntatori fossero nulli o inizializzati a zero l'errore mi si dovrebbe presentare anche in debug. Per la terza opzione non saprei, ho degli array definiti come ho letto nelle prime pagine del corso c++ web. Io penso possa trattarsi della velocità di esecuzione di alcune funzioni, che se rese più lente inizializzano i vari campi, mentre a 1000 all'ora non fa in tempo. Ho inserito dei mutex e sembra vada bene.



  • @bvox123 said in Qt Creator: in debug non si blocca mentre in esecuzione normale si blocca dopo un certo tempo:

    Io penso possa trattarsi della velocità di esecuzione di alcune funzioni, che se rese più lente inizializzano i vari campi, mentre a 1000 all'ora non fa in tempo. Ho inserito dei mutex e sembra vada bene.

    Ok questo sembra la definizione di "race condition" https://it.wikipedia.org/wiki/Race_condition



  • Il programma è multithread o usa timer?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.