An attempt to set a process's DebugPort or ExceptionPort was made
Posted 不及格的程序员-八神
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了An attempt to set a process's DebugPort or ExceptionPort was made相关的知识,希望对你有一定的参考价值。
Problem Description
=================
We tried to use ADPlus to capture dump file. But the size of dump files are all under 20K.
We tried it many times.
Trouble Shoot
=================
I tried to use the “PsExec.exe –s –i –d cmd.exe” to initialize ADPLUS. No luck.
I tried to use WinDBG attach to the process, I failed with information below.
Detail Message is as below.
---------------------------
Could not attach to process 1272, NTSTATUS 0xC0000048
已试图设置进程的 DebugPort 或 ExceptionPort,但该进程中已存在端口,或试图设置文件的 CompletionPort,但文件中已设置端口,或已试图设置 ALPC 端口的相关完成端口,但该端口已设置。
Did more research, we found the root cause and solution.
We saw DebugDiag, and we asked customer to open that. We see the dialog below.
There it is! 1272 is our SharePoint w3wp.exe process.
Root Cause
========================
Debug Diag already attached to the process.
Debug Diag has rules, which can attach to target process. Even if the rule is completed, it won’t let go of the process.
Another word to say is the debug port is still occurpied by DebugDiag, so other debuggers such as WinDBG or CDB.exe cannot attach and write dump file.
Solution
========================
1. Clear the Rules in DebugDiag.
2. Kill the following processes in task manager.
· DbgSvc.exe
· Dbghost.exe
Problem Resolved.
Dump can now be successfully written.
Lesson Learned
========================
Be careful with DebugDiag. When its rules are finished, it won’t let go of the process.