이론적 으로 런타임 환경에서 다음 절차를 사용하여 이러한 루프를 점검 할 수 있습니다 .
명령이 실행 된 후 런타임 환경은 실행중인 프로세스 상태 (예 : 레지스터, PC, 스택, 힙 및 전역을 포함하여 이와 관련된 모든 메모리)의 완전한 이미지를 만들고 해당 이미지를 어딘가에 저장 한 다음 확인 해당 프로세스에 대해 이전에 저장된 이미지와 일치하는지 확인하십시오. 일치하는 경우 프로세스가 무한 루프에 멈 춥니 다. 그렇지 않으면 다음 명령이 실행되고 프로세스가 반복됩니다.
실제로, 모든 단일 명령 후에이 점검을 수행하는 대신 런타임 환경은 프로세스를 주기적으로 일시 정지하고 저장 상태를 만들 수 있습니다. 프로세스가 n 개의 상태를 포함하는 무한 루프에 걸리면 최대 n 개의 검사 후에 중복 상태가 관찰됩니다.
물론 이것은 정지 문제에 대한 해결책 이 아닙니다 . 차이점은 여기에서 설명 합니다 .
그러나 그러한 특징은 막대한 자원 낭비 일 것이다 . 프로세스 와 관련된 모든 메모리 를 저장하기 위해 프로세스를 계속 일시 중지하면 엄청나게 느려지고 엄청난 양의 메모리가 매우 빨리 소모됩니다. (오래된 이미지는 잠시 후에 삭제 될 수 있지만, 너무 무한한 경우 큰 무한 루프 (예 : 상태가 많은 루프)로 인해 저장 될 수있는 총 이미지 수를 제한하는 것은 위험합니다. 또한,이 기능은 오류를 포착하는 기능이 매우 제한적이며 다른 디버깅 방법으로 무한 루프를 찾는 것이 비교적 간단하기 때문에 (실제로 코드를 단계별로 실행하는 것과 같이) 비교적 많은 이점을 제공하지 않습니다. 논리 오류를 인식).
따라서 누군가가 단지 차기 위해 프로그래밍하지 않는 한 그러한 런타임 환경이 존재하거나 존재한다는 것을 의심합니다. (나는 지금하고 싶은 유혹을 받는다.)