** 帖子已编辑,更多信息如下
我刚刚观看了两个关于高级 Dotnet 调试的精彩视频(由 Brian Rasmussen 撰写),我正在尝试重复一些步骤,但只是不知道如何处理 tis 错误:
An attempt to set a processes DebugPort or ExceptionPort was made,
but a port already exists in the process.
我在谷歌上找到了一些答案,我通常理解错误的含义,但我只是不明白一个奇怪的事实:当我编译我的简单应用程序 < .NET 4.0 时,我可以像电影显示的那样附加,试图做在我编译目标 .NET 4.0 后相同,我无法附加。
谷歌的答案之一是“尝试使用非侵入模式从 windbg 附加”但是..布赖恩不使用任何此类复选框。它只适用于他的视频。
有什么不同?问题在哪里?是Windows 7还是Vista?也许一些不同的编译设置很重要?
我正在使用 MS VS 2k10 和 MS SDK 以及从 msdn 下载的 Windbg x86 和正确配置到 http 服务器的符号。该系统是 MS Vista x86。
资源(准确时间 >= 8:15): http ://channel9.msdn.com/posts/MDCC-TechTalk-Advanced-NET-Debugging-part-2
编辑: 附加到从 VS 运行的进程时显示错误。试图附加到在 VS 之外运行的进程,windbg 不显示任何内容。
Edit2: Windbg 在我的系统中有一些令人耳目一新的问题。使用几次“Windows \ [Undock | Dock all]”菜单选项,我能够看到附加进程的内容,这是丢失的。
所以现在唯一的问题是:当附加到从 VS 开始的进程时,当它使用 target < 4.0 并再次 = 4.0 编译一次时,有什么区别?为什么以 4.0 windbg 为目标时无法以非“非侵入性”模式附加到进程。VS 2k10 发生了什么变化?