代码之家  ›  专栏  ›  技术社区  ›  Chris Ballance

缩短附加和加载符号的时间

  •  7
  • Chris Ballance  · 技术社区  · 15 年前

    一般来说,你对此有什么建议?当前,我需要将近10分钟才能连接到承载SharePoint 2007的本地运行IIS进程。

    3 回复  |  直到 11 年前
        1
  •  6
  •   bk1e    15 年前

    确保您的符号路径包含本地缓存目录,以便它不会在每次连接时从Microsoft的公共符号服务器下载符号。

    exclusion list 识别没有符号的模块。

        2
  •  4
  •   David Silva Smith    13 年前

    在VisualStudio2010中,我通过使用工具将连接到w3wp的过程时间缩短到几乎是即时的->选项->调试->符号,仅选择指定的模块并单击“确定”。这使得VisualStudio加载我们团队编写的六个程序集的符号,并跳过加载过程中其他146个模块的符号。

        3
  •  1
  •   Community Egal    7 年前

    您还可以从下载当前平台的符号 debugging tools for windows page . 将它们安装到本地缓存的符号目录(例如c:\windows\symbols)

    您还可以按说明关闭符号的自动加载 here .

    或者更快一些,尝试在调试器外部运行(使用Ctrl-F5),然后附加到进程。我有一个VisualStudio宏,我绑定到Ctrl-Shift-a,我点击它可以在任何时候附加到我的进程,它被映射到:

       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