Windows容器中Delphi远程调试问题(rmtdbg端口配置)
Windows容器内Delphi远程调试实操方案
1. 限制rmtdbg端口范围至50100-50199
rmtdbg支持通过命令行参数指定端口范围,启动时添加对应参数即可:
- 启动命令:
rmtdbg270.exe -range 50100-50199 - 若需持久化配置,可创建批处理文件(如
start_rmtdbg.bat)写入上述命令,设置容器启动时自动执行该批处理 - 同时要确保容器内Windows防火墙开放目标端口段,执行以下命令:
netsh advfirewall firewall add rule name="RMTDBG Ports" dir=in action=allow protocol=TCP localport=50100-50199
2. Windows Docker中为Windows Server 2019镜像配置端口转发
运行容器时静态映射端口段
在docker run命令中使用-p参数映射整个端口段,示例命令:
docker run -d -p 50100-50199:50100-50199 --name delphi-debug-container mcr.microsoft.com/windows/servercore:ltsc2019
- 该命令将主机的50100-50199端口直接映射到容器内对应端口
- 若需单独映射rmtdbg固定主端口+随机端口段,可拆分参数:
-p 50100:50100 -p 50101-50199:50101-50199
验证端口映射
执行docker port delphi-debug-container命令,查看已配置的端口映射关系,确认端口段是否正确生效。
3. Delphi 10.4/11的替代远程调试工具
官方更新版远程调试器
Delphi 10.4和11自带的远程调试工具已升级(对应rmtdbg280.exe或更高版本),支持更灵活的端口配置,直接替换旧版rmtdbg270.exe即可:
- 从本地Delphi安装目录(如
C:\Program Files (x86)\Embarcadero\Studio\21.0\bin)复制新版工具到容器内 - 启动时同样通过
-range参数指定端口范围
WinDbg远程调试
通过WinDbg实现跨容器调试:
- 在容器内启动待调试应用时添加调试参数:
your_app.exe -debug - 在主机上启动WinDbg,通过
File > Attach to Process选择容器内的目标进程(需保证主机与容器网络连通) - 在Delphi IDE中设置外部调试器路径指向WinDbg,实现联动调试
Docker容器内直接调试
利用Docker的exec命令进入容器,直接在容器内运行调试器:
docker exec -it delphi-debug-container cmd
在容器命令行中启动Delphi调试器,附加到目标进程完成调试,适合简单场景。
内容的提问来源于stack exchange,提问作者Quelltextknecht
相关产品推荐
相关产品推荐

