程序冻结,但CPU利用率为零 [英] Program freezes but the CPU utilization is zero

查看:79
本文介绍了程序冻结,但CPU利用率为零的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有时我的程序死机了。如果我单击暂停程序,它将显示以下信息:

Sometimes my program freezes. If i click 'Pause program' it shows me this:

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键,程序跳转到

Pressing F8 three times, the program jumps to

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

我无法按需复制它,但是每天看到一次问题(也许更少?)。

编译器/调试器以32位运行。

I cannot reproduce it on demand but I see the problem once per day (maybe less?).
The compiler/debugger is running in 32 bit.

知道这是否是调试器问题吗?我过去遇到过类似的情况:有时,当您从Delphi应用程序运行外部应用程序时,调试器冻结。这是Delphi XE7的一个已记录错误。所以,我在想,也许这是一个类似/相关的错误?

Any idea if this is a debugger problem? I encountered something similar in the past: sometimes when you run an external application from your Delphi app, the debugger freezes. This is a documented bug for Delphi XE7. So, I am thinking, maybe this is a similar/related bug?

推荐答案

我在这里取得进步!我在我的程序中发现了类似的问题。由于以下代码,当我尝试在自定义列表框中加载大文本(超过100000)时,出现冻结:

I am making progress here! I have found a similar issue in a program of mine. The freeze appears when I try to load a large text (over 100000) in a custom list box 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;

执行点通过LBADDSTRING每行(100000次)。因此,似乎冻结了。

The execution point runs through LBADDSTRING for every line (100000 times). So, it seems frozen.

奇怪的是,如果我暂停程序,Delphi无法准确显示程序的执行点(我检查了所有5个线程)。因此,所有这些最终都是Delphi调试程序的缺陷。

Odd is also the 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 is in the end a Delphi debugger flaw.

这篇关于程序冻结,但CPU利用率为零的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆