8

一般的に言えば、これに関するあなたの推奨事項は何ですか? 現在、SharePoint 2007 をホストしているローカルで実行中の IIS プロセスにアタッチするには、10 分近くかかります。

4

3 に答える 3

6

アタッチするたびに Microsoft のパブリック シンボル サーバーからシンボルをダウンロードしないように、シンボル パスにローカル キャッシュ ディレクトリが含まれていることを確認してください。

また、Visual Studio でこれを試したことはありませんが、シンボルを持たないモジュールを識別する除外リストを設定することもできます。

于 2009-10-16T17:53:29.920 に答える
4

Visual Studio 2010 では、[ツール] -> [オプション] -> [デバッグ] -> [シンボル] に移動し、[指定されたモジュールのみ] を選択して [OK] をクリックすることで、w3wp へのアタッチ プロセス時間をほぼ瞬時に短縮しました。これにより、Visual Studio はチームが作成した 6 つのアセンブリのシンボルをロードし、プロセス内の他の 146 モジュールのシンボルのロードをスキップします。

Microsoft Symbol Server でシンボル ファイル (.pdb) の場所を確認し、シンボルを c:\debugSymbols にキャッシュしていることに注意してください。

于 2011-11-11T16:03:41.457 に答える
1

現在のプラットフォームのシンボルは、Windows 用デバッグ ツールのページからダウンロードすることもできます。それらをローカルのキャッシュされたシンボル ディレクトリ (例: c:\windows\symbols) にインストールします。

こちら で説明されているように、シンボルの自動読み込みをオフにすることもできます。

または、デバッガーの外部で (Ctrl-F5 を使用して) 実行してから、プロセスに接続してみてください。任意の時点でプロセスにアタッチするためにヒットする Ctrl-Shift-A にバインドする Visual Studio マクロがあり、これにマップされています。

   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
于 2009-10-20T21:26:02.343 に答える