어떻게 추가하는 디버그 중단을 줄에 표시되는"검색어는"창에는 Visual Studio

StackOverflow https://stackoverflow.com/questions/73063

문제

Visual Studio2,005 에서 2,015 그것을 찾아 가능한 모든 라인을 포함하는 특정 참조를 디스플레이에 그들을"찾는 결과"창을 엽니다.

지금 하는 이러한 결과 라인이 표시되고,어떤 키보드 단축키 허용을 추가하는 디버그 중단점을 모두?

도움이 되었습니까?

해결책

이 대답을 작동하지 않는 Visual Studio2015 니다.최근 대답을 찾을 수 있습니다 .

당신이 할 수있는 비교적 쉽게 Visual Studio 매크로입니다.Visual Studio 내에서 충돌 Alt+F11 열 IDE 매크로를 추가로 새로운 모듈에 마우스 오른쪽 버튼을 클릭하여[MyMacros 선택하여 추가|추가 모듈...

를 붙여 다음에 원본을 편집기:

Imports System
Imports System.IO
Imports System.Text.RegularExpressions
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module CustomMacros
    Sub BreakpointFindResults()
        Dim findResultsWindow As Window = DTE.Windows.Item(Constants.vsWindowKindFindResults1)

        Dim selection As TextSelection
        selection = findResultsWindow.Selection
        selection.SelectAll()

        Dim findResultsReader As New StringReader(selection.Text)
        Dim findResult As String = findResultsReader.ReadLine()

        Dim findResultRegex As New Regex("(?<Path>.*?)\((?<LineNumber>\d+)\):")

        While Not findResult Is Nothing
            Dim findResultMatch As Match = findResultRegex.Match(findResult)

            If findResultMatch.Success Then
                Dim path As String = findResultMatch.Groups.Item("Path").Value
                Dim lineNumber As Integer = Integer.Parse(findResultMatch.Groups.Item("LineNumber").Value)

                Try
                    DTE.Debugger.Breakpoints.Add("", path, lineNumber)
                Catch ex As Exception
                    ' breakpoints can't be added everywhere
                End Try
            End If

            findResult = findResultsReader.ReadLine()
        End While
    End Sub
End Module

이 예제에 사용하는 결과를 찾을 수"결과 1"창;할 수 있습을 만들기 위한 각각의 결과는 창입니다.

을 만들 수 있습니다 바로 가기 키를 선택하...선택 키보드환경 섹션에서 탐색에 왼쪽에 있습니다.매크로를 선택하고 할당하는 모든 바로 가기를 좋아한다.

을 추가할 수도 있습니다 당신의 매크로를 메뉴나 도구 모음 도구|주문을 받아서 만듭니다...선택 매크로 섹션에서 탐색에 왼쪽에 있습니다.을 찾으려면 일단 당신의 매크로 목록에서 끌 수 있습니다 그것이 어떤 메뉴나 도구 모음에,그것은 그것의 텍스트나 아이콘을 지정할 수 있습을 당신이 무엇을 원합니다.

다른 팁

는 경우를 검색할 수 있는 단어를 정확히 사용할 수 있습니 한 쌍의 키보드 단축키를 빨리 작업을 수행합니다.

Tools->Options->환경->키보드

  • 집니다.GoToFindResults1NextLocation
  • EditorContextMenus.CodeWindow.점.InsertBreakpoint

에 할당하 제어+Alt+F11 및 F10 고를 통해 갈 수 있는 모든 결과에 매우 빠르게 합니다.내가 찾지 못한 바로 가기 위해 다음 참조 그러나입니다.

내가 필요로 비슷한 사용 중단점을 모두 장단점에서 매"Catch ex 로 예외".그러나 저는 확장이 작은 것입니다 그래서에서 중단점을 모든이 발생하는 문자열을 선택합니다.당신이해야 할 모든 당신이 강조할 문자열이 중단점에서 매크로를 실행합니다.

 Sub BreakPointAtString()

    Try
        DTE.ExecuteCommand("Debug.DisableAllBreakpoints")
    Catch ex As Exception

    End Try

    Dim tsSelection As String = DTE.ActiveDocument.Selection.text
    DTE.ActiveDocument.Selection.selectall()
    Dim AllText As String = DTE.ActiveDocument.Selection.Text

    Dim findResultsReader As New StringReader(AllText)
    Dim findResult As String = findResultsReader.ReadLine()
    Dim lineNum As Integer = 1

    Do Until findResultsReader.Peek = -1
        lineNum += 1
        findResult = findResultsReader.ReadLine()
        If Trim(findResult) = Trim(tsSelection) Then
            DTE.ActiveDocument.Selection.GotoLine(lineNum)
            DTE.ExecuteCommand("Debug.ToggleBreakpoint")
        End If
    Loop

End Sub

희망 그것은 당신을 위해 일:)

바울이,많은 감사합니다,하지만 나는 다음과 같은 오류(메시지자)수있다,내가 다시 시작해야 PC:

Error
---------------------------
Error HRESULT E_FAIL has been returned from a call to a COM component.
---------------------------
OK   
---------------------------

나는 다음과 같은 솔루션을 제안하는 매우 간단하지만 그것이 나를 위해

Sub BreakPointsFromSearch()
    Dim n As Integer = InputBox("Enter the number of search results")

    For i = 1 To n
        DTE.ExecuteCommand("Edit.GoToNextLocation")
        DTE.ExecuteCommand("Debug.ToggleBreakpoint")            
    Next
End Sub
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top