가끔 내 프로그램이 멈 춥니 다. '일시 중지 프로그램'을 클릭하면 다음과 같은 메시지가 표시됩니다.프로그램이 멈추지 만 CPU 사용률이 0입니다.
ntdll.RtlUserThreadStart:
773301C4 89442404 mov [esp+$04],eax
773301C8 895C2408 mov [esp+$08],ebx
773301CC E9E9960200 jmp $773598ba
773301D1 8DA42400000000 lea esp,[esp+$0000]
773301D8 8DA42400000000 lea esp,[esp+$0000]
773301DF 90 nop
'통화 스택'창은 비 었음!
F8을 세 번 누르면, 프로그램은 내가 요구에 그것을 재현 할 수없는
ntdll.RtlInitializeExceptionChain:
7735989F 8BFF mov edi,edi
로 이동하지만 난 하루에 한 번 문제를 참조하십시오 (아마도 더 적은?).
컴파일러/디버거가 32 비트에서 실행 중입니다.
이것이 디버거 문제일까요? 과거에 비슷한 문제가 발생했습니다 : 때로는 델파이 앱에서 외부 애플리케이션을 실행할 때 디버거가 정지합니다. 이것은 Delphi XE7의 문서화 된 버그입니다. 그래서, 아마도 이것은 비슷한/관련 버그일까요?
여기에 어떻게 든 비슷한 문제가 있지만 제 경우에는 CPU가 0 %이고 스레드를 선택할 수 없습니다 : http://stackoverflow.com/questions/13057133/stopping-delphi-program-in-an-infinite-loop – Ampere
말하기 어렵다. 매우 쉽게 귀하의 코드에 결함이 될 수 있습니다. 그것은 확실하게 가장 가능성있는 설명입니다. –
그게 정확히 무슨 짓을했는지. 코드의 결함으로 인해 교착 상태와 같은 냄새가납니다. 일반적으로, 반대로 증거를 찾을 때까지 결함이 시스템이 아닌 코드에 있다고 가정해야합니다. –