我的节目在哪里等?

时间:2017-03-28 13:20:18

标签: multithreading delphi blocking

我有一个带阻塞调用的Delphi 10多线程应用程序。当我退出时,它有时不会从RAM卸载,Delphi调试器也不会停止。

如何(工具,方法)检测我的应用程序在哪个例程中等待?

1 个答案:

答案 0 :(得分:7)

  1. 点击Pause按钮(运行,程序暂停)
  2. 显示Threads window(查看,调试Windows,主题或Ctrl+Alt+V
  3. 依次双击每个线程并检查call stack(查看,调试Windows,调用堆栈或Ctrl+Alt+S
  4. 在调用堆栈顶部查看代码时,查看调用堆栈中的例程并评估您看到的证据,但是在源文件中
  5. 有时,在启用Debug DCUs(项目,选项...,Delphi编译器,编译,使用调试.dcus)并禁用runtime packages的情况下运行上述步骤会提供更多信息(项目,选项...,包,运行时包,与运行时包的链接)