Остановка программы delphi в бесконечном цикле

Когда в Delphi происходит неопределенный цикл, отладчик даже не выдаст мне трассировку стека, когда я нажму кнопку остановки. Если у меня есть подозрение, где программа останавливается, я могу поставить точку останова, и она остановится, если это правильный неопределенный цикл.

Вот пример программы, которая намеренно вызывает неопределенный цикл:

procedure TForm1.btnDebugInfiniteLoopClick(Sender: TObject);
var I: Integer;
begin
    I:=0;
    while I64 then I:=I div 2;
    end;
end;

Когда остановился, я получаю что-то похожее на:

ntdll.RtlUserThreadStart:
776301B4 89442404         mov [esp+$04],eax
776301B8 895C2408         mov [esp+$08],ebx
776301BC E9E99C0200       jmp $77659eaa
776301C1 8DA42400000000   lea esp,[esp+$0000]
776301C8 8DA42400000000   lea esp,[esp+$0000]
776301CF 90               nop 
ntdll.KiFastSystemCall:
776301D0 8BD4             mov edx,esp

...

Когда я делаю один шаг (F7), он делает несколько шагов, а затем блокируется, пока я снова не нажму на разрыв, и в этот момент я получаю тот же результат.

Ответы на вопрос(2)

Ваш ответ на вопрос