memory-leaks - 无法调试 pid 11588 - 尝试设置进程的 DebugPort 或 ExceptionPort 但端口已存在
问题描述
我的 Windows 服务每隔一天就会崩溃一次。我的过程越来越大。所以我试图通过使用 CDB.exe 命令找到内存泄漏。【WinDBG命令行版】
我正在尝试定期附加和分离进程,因此我在管理员模式下执行以下命令以打印出超过 1000 个字节的顶部堆内存使用者。
cdb -pn MyWindowsService.exe -c ".loadby sos clr; !dumpheap -stat -min 1000; qd"
我收到以下提示错误消息
尝试设置进程的 DebugPort 或 ExceptionPort,但进程中已存在端口或尝试设置文件的 CompletionPort,但文件中已设置端口或尝试设置 ALPC 端口的关联完成端口已经制作好了,但已经设置好了。”
它实际上是什么意思?
我也尝试过使用 WinDbg
它与调试诊断规则有关吗?如果是,我该如何解决?
这与从 VS 调试器切换到 WinDbg不同,因为在这里我试图解决特定问题,如果我们保持打开 Visual Studio
解决方案
如果进程已经在调试,通常会出现此问题。另一个调试器可以是 Visual Studio、ProcDump 或其他工具。
我能够通过关闭视觉工作室并独立运行可执行文件来解决它。