调试 Delphi 多线程应用程序 - 如何找到占用 100% CPU 的线程

4

我正在调试一个多线程的Delphi应用程序。 我们遇到了一个问题,即在连接服务器后,客户端应用程序会占用100%的CPU。 有没有一种方法可以调试并知道是哪个线程在这样做?

2个回答

8

Process Explorer将为您提供任何进程的线程级别使用详细信息。

  1. 运行您的应用程序
  2. 下载和运行Process Explorer
  3. 在进程列表中双击您的可执行文件
  4. 选择Threads选项卡,您将看到:
    1. 线程ID
    2. CPU使用率
    3. 循环周期
    4. 启动地址

TID应该足以锁定您的CPU占用线程。


1
双击进程并选择“线程”选项卡以获取进程详细信息。稍等片刻以进行刷新。如果您能做到比我更好,那么请点赞吧。 - Brian
这个应用程序帮了我很多,谢谢。原来一个方法的调用在 Indy 9 上运行正常,但一旦我们改为 Indy 10,就会在特定线程调用 Indy 方法时出现问题。 - ronaldosantana

3

正如Paul Sasik所建议的那样,Process Explorer可能是您想要使用的工具。如果您的调试策略涉及监视应用程序自身中的代码,则可以使用GetThreadTimes


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接