您也可以从debugging tools for windows page下载当前平台的符号。将它们安装到本地缓存的符号目录(例如c:\windows\symbols)。 您也可以关闭符号的自动加载,如here所述。 或者,尝试在调试器之外运行(使用Ctrl-F5),然后附加到进程。我有一个Visual Studio宏,我绑定到Ctrl-Shift-A,我可以在任何时候点击它来附加到我的进程,它Map到:
Function AttachToProcess(ByVal procname As String, ByVal quiet As Boolean) As Boolean
Dim attached As Boolean = False
Dim proc2 As EnvDTE80.Process2
' Attaching natively, from http://blogs.msdn.com/jimgries/archive/2005/11/30/498264.aspx'
Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
Dim dbgeng(1) As EnvDTE80.Engine
dbgeng(0) = trans.Engines.Item("Native")
For Each proc2 In DTE.Debugger.LocalProcesses
If (proc2.Name.Contains(procname)) Then
proc2.Attach2(dbgeng)
attached = True
Exit For
End If
Next
If (attached = False And quiet = False) Then
MsgBox(procname + " is not running")
End If
Return attached
End Function
Sub AttachToMyProcess()
AttachToProcess("MyProcess.exe", True)
End Sub
3条答案
按热度按时间lymnna711#
请确保符号路径包含本地缓存目录,以便每次附加时不会从Microsoft的公共符号服务器下载符号。
另外,我还没有在Visual Studio中尝试过这种方法,但是您也可以设置一个exclusion list来识别没有符号的模块。
ubbxdtey2#
在Visual Studio 2010中,我通过进入Tools -〉Options -〉Debugging -〉Symbols,选择Only specified modules并单击OK,将连接到w3 wp进程的时间减少到几乎是即时的。这使得Visual Studio加载我们团队编写的六个程序集的符号,并跳过加载进程中其他146个模块的符号。
注意,我已经检查了Microsoft符号服务器中的符号文件(.pdb)位置,并将符号缓存到c:\debugSymbols。
83qze16e3#
您也可以从debugging tools for windows page下载当前平台的符号。将它们安装到本地缓存的符号目录(例如c:\windows\symbols)。
您也可以关闭符号的自动加载,如here所述。
或者,尝试在调试器之外运行(使用Ctrl-F5),然后附加到进程。我有一个Visual Studio宏,我绑定到Ctrl-Shift-A,我可以在任何时候点击它来附加到我的进程,它Map到: