如何将插件调试到闭源 exe?

How to debug plugin to a closed-source exe?

我正在为 AIMP 音乐播放器编写一个插件,它本身是封闭源代码,但有添加插件的文档。该界面在 Delphi 中可用,因此我正在研究如何使用 RAD Studio Delphi 10.3 社区版。

我偶然发现了以下情况之一:

我已经设置了 运行 参数,这样当我按下“运行”时,AIMP 程序就会真正启动。我还启用了 Tools > Options > Debugger > Embarcadero Debuggers > Debug spawned processes。但是,程序并没有停在我的断点处,断点前显示了一个灰色的X图标。

原来这是因为我在 AIMP 插件目录中也有一个已编译的 dll 版本,所以它正在加载旧版本而不是我新编译的版本。但即使我删除了旧版本......我怎样才能让它真正调用新版本? 当我构建我的 dll 并将其粘贴到 AIMP 的插件目录中时,它将被加载并且设置屏幕反映了这一点。当用户修改设置时,我什至可以显示一个消息框。但是把dll拷贝过来就意味着我不能在断点处停止。

如何让调试器在我的断点处停止,以便我可以单步执行程序,理想情况下能够看到局部变量的值?

Project > Options > Building > Delphi Compiler 下有选项 Output directory。正如 @Brian in 所建议的那样,将相关构建配置的此路径设置为 AIMP 插件目录就可以了。