어떻게 추가하는 디버그 중단을 줄에 표시되는"검색어는"창에는 Visual Studio
-
09-06-2019 - |
문제
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