PDA

Visualizza la versione completa : [VC++] Applicazione che non termina


enigmagame83
03-12-2008, 17:30
Ciao a tutti.
Avrei bisogno di un consiglio, ho sviluppato un'applicazione in Visual C++, normalmente termina correttamente. Se in questa applicazione lancio una particolare procedura ottengo dei problemi, mi spiego meglio:
Al lancio di una determinata funzione, questa viene correttamente eseguita, poi supponiamo che io chiuda l'applicazione. Controllando nel task manager noto che l'applicazione non terminata ma ancora attiva st "facendo qualcosa" visto il carico della cpu.
Come posso verificare il problema? Cosa posso fare per vedere cos' che non la fa terminare? Magari abilitando qualcosa in particolare durante il debug?
Grazie.

Stoicenko
03-12-2008, 17:32
probabile che sia un thread non terminato correttamente o qualche libreria esterna che ne fa uso.. controlla questo intanto

enigmagame83
03-12-2008, 17:38
Originariamente inviato da Stoicenko
probabile che sia un thread non terminato correttamente o qualche libreria esterna che ne fa uso.. controlla questo intanto
Non ho thread, ma aggiungo qualche altro particolare.
Si tratta di un'applicazione grafica, sostanzialmente carico un modello 3D ed eseguo delle operazioni su di esso.
Se il modello piccolino, quindi ha pochi vertici (poche operazioni che devo fare), l'applicazione termina correttamente e subito.
Se il modello complesso, le operazioni le esegue correttamente e una volta terminate l'utilizzo della CPU normale (con l'applicazione ancora aperta). Appena la chiudo l'utilizzo della CPU schizza al massimo, in pratica alla chiusura distruggo il modello e ripulisco alcune cose in memoria, per questo vorrei vedere dove si blocca.
Grazie.

Stoicenko
03-12-2008, 17:42
b fa vedere cosa fai alla chiusure e spiega cosa utilizzi per fare queste operazioni grafiche

enigmagame83
03-12-2008, 17:53
Ho dei memory leaks, non l'avevo notato.
E' possibile capire dove sono? Mi spiego meglio possibile capire quali strutture danno problemi senza controllare il codice a mano?
Purtroppo ho poca esperienza con il debug.
Grazie.

MItaly
03-12-2008, 23:12
Lancia il programma in modalit di debug, e quando la finestra scomparsa ma la CPU al 100% in Visual C++ premi il tasto "Interrompi"; a quel punto vedrai che parte di codice in esecuzione.

Loading