PDA

Visualizza la versione completa : [C]Esecuzione di programmi pesanti


ramy89
12-12-2011, 21:47
Ho un problema perch sto facendo il debug di un programma "pesante".Nei programmi piccoli se va in segmentation fault o in un loop infinito non ci sono problemi.
Ma con questo programma, ogni volta che va in segmentation fault il pc mi si blocca (nel senso che ovunque clicco il click non ha effetto e non posso fare niente)... :confused:
Uso ubuntu 10.10 , compilo con gcc da code::blocks ma sarei disposto anche a cambiarlo,o a compilare da terminale, e vorrei sapere se c' qualche modo per evitare che il pc si blocchi.Come ad esempio stabilire che se il programma in esecuzione da pi di tot secondi esce automaticamente, sapete come fare?

oregon
12-12-2011, 23:06
No ... non possibile ... se ci sono problemi che coinvolgono puntatori e aree di memoria "sporche" il risultato imprevedibile e incontrollabile (almeno per il processo in questione).

Devi fare molto "debugging" e con l'esperienza ci riesci facilmente anche con programmi pi grandi.

MItaly
13-12-2011, 00:19
Il blocco probabilmente deriver dal fatto che il programma va in un ciclo infinito e "mangia" tutta la CPU. In ogni caso dovresti riuscire a riprendere il controllo della macchina passando su una console (ad esempio facendo Ctrl+Alt+F2) e uccidendo da l il processo impazzito (con la killall - ovviamente prima di riuscire ad ottenere la console pu volerci un po'). Un'altra maniera usare setrlimit per limitare il tempo di CPU che il tuo processo pu mangiarsi.

Loading