The program freezes, but the processor load is zero

Sometimes my program freezes. If I press the “Pause program” button, it will show me the following:

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 

Call Stack Window CAUTION!

Pressing F8 three times, the program switches to

 ntdll.RtlInitializeExceptionChain: 7735989F 8BFF mov edi,edi 

I cannot reproduce it on demand, but I see the problem once a day (maybe less?).
The compiler / debugger runs at 32 bits.

Any idea if this is a debugger problem? In the past, I came across something similar: sometimes, when you start an external application from your Delphi application, the debugger freezes. This is a documented bug for Delphi XE7. So, I think, maybe this is a similar / related error?


-1
source share
1 answer

I am moving forward! I found a similar problem in my program. A freeze appears when I try to load a large text (over 100,000) in a user list because of this code:

 MyListBox.Items.Text:= xxx; procedure TMyListBox.LBADDSTRING(var M: TMessage); { This makes the control slow when I work with 100000 lines } begin inherited; if Assigned(FOnChange) then FOnChange(Self, lbAdded); end; 

The execution point passes through LBADDSTRING for each row (100,000 times). So it seems frozen.

It is also an odd fact that if I pause the program, Delphi cannot accurately show the execution point for my program (I checked all 5 threads). So, all this ultimately is a disadvantage of debugging Delphi.

+1
source

Source: https://habr.com/ru/post/1441911/


All Articles