O Ubuntu congela na recursão g ++

0

Estou usando Ubuntu 14.04 e gcc version 4.8.2 . Às vezes, quando executo o código C++ , que tem alguns bugs, por exemplo Runtime Error , ele vai para um recursion (suponho ...) e todo o meu computador congela. Não posso fazer nada. Ctrl+C, Ctr+Alt+F1..F7, Mouse , qualquer botão não funciona. Até meu botão de energia. Então eu tenho que segurar para desligar meu computador. Este bug do Ubuntu ou do gcc está me irritando! Alguém sabe como consertar isso?

Minha linha de compilação: g++ -O2 -Wall -pedantic -Wextra

versão g ++: g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2

Versão do Ubuntu: Ubuntu 14.04 LTS

Eu tenho o mesmo comportamento em ambos os meus computadores. (E meu frito também. Eu tenho 2 ASUS comps e meu frito tem DELL )

    
por PepeHands 20.12.2014 / 11:49

1 resposta

0

Estou tendo, por vezes, o mesmo problema. Não é causado pela recursão em si, mas pelo Linux saindo da memória. O Linux permite que os programas aloquem o espaço de que precisam até que não haja mais memória. Por causa disso, sua máquina se torna incapaz de lidar com operações primitivas.

O Windows se comporta de outra maneira. Deixa algum espaço livre para as suas necessidades. Seu código receberia um erro "Sem memória" e o sistema funcionaria muito devagar por um tempo, mas não totalmente congelado.

A mesma idéia é usada por fork-bomb attack, que pega toda a memória no sistema tão rápido que mesmo killall é incapaz de rodar.

Se o seu programa consome muita memória sem controle, ele logo morrerá e o Linux rodará OK. A única maneira que me ajudou a torná-lo mais rápido atualmente é enviar Ctrl-C para o terminal onde seu código é iniciado ou está tentando executar killall .

    
por Lapshin Dmitry 20.12.2014 / 12:23