Về mặt lý thuyết, môi trường thời gian chạy có thể kiểm tra các vòng lặp như vậy bằng cách sử dụng quy trình sau:
Sau khi thực hiện lệnh, môi trường thời gian chạy sẽ tạo một hình ảnh hoàn chỉnh về trạng thái của một tiến trình đang chạy (tức là tất cả bộ nhớ được liên kết với nó, bao gồm các thanh ghi, PC, stack, heap và toàn cầu), lưu hình ảnh đó vào đâu đó, rồi kiểm tra xem liệu nó phù hợp với bất kỳ hình ảnh được lưu trước đó cho quá trình đó. Nếu có một trận đấu, thì quá trình bị kẹt trong một vòng lặp vô hạn. Mặt khác, lệnh tiếp theo được thực thi và quá trình được lặp lại.
Trong thực tế, thay vì thực hiện kiểm tra này sau mỗi lệnh đơn lẻ, môi trường thời gian chạy có thể chỉ cần tạm dừng quá trình theo định kỳ và tạo trạng thái lưu. Nếu quá trình bị kẹt trong một vòng lặp vô hạn liên quan đến n trạng thái, thì sau khi nhiều nhất n kiểm tra, một trạng thái trùng lặp sẽ được quan sát.
Tất nhiên, lưu ý rằng đây không phải là một giải pháp cho vấn đề tạm dừng; sự phân biệt được thảo luận ở đây .
Nhưng một tính năng như vậy sẽ là một sự lãng phí tài nguyên to lớn ; liên tục tạm dừng một quá trình để lưu tất cả bộ nhớ liên quan đến nó sẽ làm chậm rất nhiều và tiêu tốn một lượng lớn bộ nhớ rất nhanh. (Mặc dù sau một thời gian, hình ảnh cũ có thể bị xóa, nhưng sẽ rất rủi ro khi giới hạn tổng số hình ảnh có thể được lưu vì một vòng lặp vô hạn lớn - tức là một hình ảnh có nhiều trạng thái - có thể không bị bắt nếu có quá ít trạng thái được giữ trong bộ nhớ.) Hơn nữa, tính năng này thực sự sẽ không mang lại nhiều lợi ích như vậy, vì khả năng bắt lỗi của nó sẽ vô cùng hạn chế và vì việc tìm các vòng lặp vô hạn bằng các phương pháp gỡ lỗi khác (chẳng hạn như chỉ đơn giản là bước qua mã và nhận ra lỗi logic).
Do đó, tôi nghi ngờ rằng một môi trường thời gian chạy như vậy tồn tại hoặc nó sẽ tồn tại, trừ khi có ai đó lập trình nó chỉ để đá. (Điều mà bây giờ tôi hơi bị cám dỗ để làm.)