visual studio scripts punto poner modo interrupcion habilitada está encuentra depurar depuración debuggear como chrome breakpoint aplicacion visual-studio debugging breakpoints

scripts - ¿Cómo agrego Debug Breakpoints a las líneas que se muestran en la ventana "Buscar resultados" en Visual Studio?



la depuración de scripts de chrome en visual studio está habilitada (4)

En Visual Studio 2005-2015 es posible encontrar todas las líneas que contienen ciertas referencias y mostrarlas en la ventana "Encontrar resultados".

Ahora que se muestran estas líneas de resultados, ¿hay algún atajo de teclado que permita agregar puntos de corte de depuración a todos ellos?


Si puede buscar la palabra exactamente, puede usar un par de atajos de teclado para hacerlo rápidamente.

Herramientas -> Opciones -> Entorno -> Teclado

  • Edit.GoToFindResults1NextLocation
  • EditorContextMenus.CodeWindow.Breakpoint.InsertBreakpoint

Asignarlos a Control + Alt + F11 y F10 y puede ver todos los resultados muy rápidamente. Sin embargo, no he encontrado un atajo para ir a la próxima referencia.


Puede hacerlo con bastante facilidad con una macro de Visual Studio. Dentro de Visual Studio, presione Alt-F11 para abrir la macro IDE y agregue un nuevo módulo haciendo clic derecho en MyMacros y seleccionando Agregar | Agregar módulo ...

Pegue lo siguiente en el editor de fuente:

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

Este ejemplo usa los resultados en la ventana "Encontrar resultados 1"; es posible que desee crear un acceso directo individual para cada ventana de resultados.

Puede crear un atajo de teclado yendo a Herramientas | Opciones ... y seleccionando Teclado en la sección Entorno en la barra de navegación de la izquierda. Selecciona tu macro y asigna cualquier atajo que te guste.

También puede agregar su macro a un menú o barra de herramientas yendo a Herramientas | Personalizar ... y seleccionando la sección Macros en la navegación a la izquierda. Una vez que ubique su macro en la lista, puede arrastrarla a cualquier menú o barra de herramientas, donde su texto o icono se puede personalizar a lo que desee.


Necesitaba algo similar para deshabilitar todos los puntos de interrupción y colocar un punto de interrupción en cada "captura ex como excepción". Sin embargo, amplié esto un poco para que coloque un punto de interrupción en cada aparición de la secuencia que ha seleccionado. Todo lo que necesita hacer con esto es resaltar la cadena en la que desea tener un punto de interrupción y ejecutar la macro.

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

Espero que funcione para ti :)


Paul, muchas gracias, pero tengo el siguiente error (cuadro de mensaje), puede ser que necesite reiniciar mi PC:

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

Propondría la siguiente solución, que es muy simple pero funciona para mí

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