如何让F12在VS x的Vista x64上进入调试器?

MSN*_*MSN 5 64-bit windows-vista visual-studio-2008

F12是追踪UI阻止操作的一个奇迹,但我无法弄清楚如何使它与VS 2008和托管代码一起使用.

救命!或不...

编辑:事实证明它在Vista x64上无法在VS 2005中运行,所以我想根据你的观点,它可以扩大或缩小它:(

MSN

Mil*_*ian 0

虽然我不知道 x86 Windows XP 中的 F12 功能,但以下说明描述了我如何侵入已运行的程序(此技术适用于 x86 和 x64 Windows 操作系统)。

首先,运行 Visual Studio(2008、2005、2003...并不重要,因为它们都支持附加到正在运行的进程;它们从终极调试器 WinDbg 继承了此功能,可在Debugging Tools for Windows中找到)

从“工具”菜单中,选择“附加到进程...”命令:

附加到进程菜单http://img297.imageshack.us/img297/2369/attachmenuhe7.png

我发现这个功能非常有用,我什至将此命令添加到 Visual Studio 主工具栏:

附加到工具栏中的进程http://img440.imageshack.us/img440/1232/vstoolbarmainaw4.png

将显示“附加到进程”对话框。它将列出所有当前正在运行的进程(如果未列出您的进程,请尝试启用对话框底部的“显示所有用户的进程”或“显示所有会话中的进程”复选标记)。只需选择您想要侵入的进程并点击“附加”按钮即可:

附加到进程对话框http://img231.imageshack.us/img231/8415/vsdialogattachoq5.png

注意:调试器可以在不同的模式下工作,调试本机代码、托管代码、脚本(在 Internet Explorer 中)甚至 T-SQL 和 WF 工作流。无论您选择什么,“附加到进程”对话框都会在您下次打开它时记住它们。

Visual Studio 成功附加到您尝试闯入的进程后,使用“调试”->“全部中断”命令停止该进程中的所有线程:

打破所有菜单http://img297.imageshack.us/img297/8579/vsmenubreakallrb1.png

也可以从调试工具栏使用此命令:

打破工具栏中的所有内容http://img440.imageshack.us/img440/248/vstoolbardebugwt4.png

中断后,您可以探索所有当前正在运行的线程、它们的堆栈、内存、本地和全局变量等。这应该允许您对长时间运行的操作进行故障排除,即使是在您使用的 F12 功能不易使用的 x64 操作系统中也是如此。