我的程序在哪里等待?

Where is my program waiting?

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

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

  1. 点击 Pause 按钮(运行,程序暂停)
  2. 显示 Threads window(查看、调试 Windows、线程或 Ctrl+Alt+V
  3. 依次双击每个线程并检查 call stack(查看、调试 Windows、调用堆栈或 Ctrl+Alt+S
  4. 在调用堆栈中查找您的例程,并评估您在仔细阅读调用堆栈顶部但在源文件中的代码时看到的证据

有时 运行 禁用 Debug DCUs enabled (Project, Options..., Delphi Compiler, Compiling, Use debug .dcus), and runtime packages 上述步骤会提供更多信息(项目、选项...、包、运行time 包、Link 运行时间套餐)