Potrebbe essere teoricamente possibile per un ambiente di runtime controllare tali loop usando la seguente procedura:
Dopo aver eseguito tutte le istruzioni, l'ambiente di runtime creava un'immagine completa dello stato di un processo in esecuzione (ovvero tutta la memoria ad esso associata, inclusi registri, PC, stack, heap e globali), salvava quell'immagine da qualche parte e quindi controllava vedere se corrisponde a una qualsiasi delle immagini salvate in precedenza per quel processo. Se c'è una corrispondenza, il processo è bloccato in un ciclo infinito. Altrimenti, viene eseguita l'istruzione successiva e il processo viene ripetuto.
Infatti, anziché eseguire questo controllo dopo ogni singola istruzione, l'ambiente di runtime potrebbe semplicemente mettere in pausa il processo periodicamente e creare uno stato di salvataggio. Se il processo è bloccato in un ciclo infinito che coinvolge n stati, quindi dopo al massimo n controlli, verrà osservato uno stato duplicato.
Si noti, ovviamente, che questa non è una soluzione al problema dell'arresto; la distinzione è discussa qui .
Ma una tale caratteristica sarebbe un enorme spreco di risorse ; sospendere continuamente un processo per salvare tutta la memoria ad esso associata lo rallenterebbe tremendamente e consumerebbe un'enorme quantità di memoria molto rapidamente. (Anche se le vecchie immagini potrebbero essere eliminate dopo un po ', sarebbe rischioso limitare il numero totale di immagini che potrebbero essere salvate perché un grande ciclo infinito - cioè uno con molti stati - potrebbe non essere catturato se ci sono troppo pochi stati mantenuti in memoria.) Inoltre, questa funzionalità non fornirebbe effettivamente molti vantaggi, poiché la sua capacità di rilevare errori sarebbe estremamente limitata e poiché è relativamente semplice trovare loop infiniti con altri metodi di debug (come passare semplicemente attraverso il codice e riconoscere l'errore logico).
Pertanto, dubito che un tale ambiente di runtime esista o che esisterà mai, a meno che qualcuno non lo programma solo per calci. (Che sono un po 'tentato di fare ora.)