如何将调试断点添加到Visual Studio的“查找结果”窗口中显示的行
6746 观看
4回复
回应 (4)
16像
此答案不适用于Visual Studio 2015或更高版本。最近的答案可以在这里找到。
您可以使用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”窗口中的结果; 您可能希望为每个结果窗口创建单独的快捷方式。
您可以通过转到“工具”|“选项...”并在左侧导航中的“ 环境”部分下选择“ 键盘”来创建键盘快捷键。选择您的宏并指定您喜欢的任何快捷方式。
您还可以通过转到“工具”|“自定义...”并选择左侧导航中的“ 宏”部分,将宏添加到菜单或工具栏中。在列表中找到宏后,您可以将其拖动到任何菜单或工具栏,在其中可以将文本或图标自定义为您想要的任何内容。
作者: Jeff Hillman 发布者: 30.10.2008 07:353像
如果您可以准确搜索单词,则可以使用一对键盘快捷键快速完成。
工具 - >选项 - >环境 - >键盘
- Edit.GoToFindResults1NextLocation
- EditorContextMenus.CodeWindow.Breakpoint.InsertBreakpoint
将它们分配给Control + Alt + F11和F10,您可以非常快速地完成所有结果。我没有找到进入下一个引用的快捷方式。
作者: Tom Ritter 发布者: 16.09.2008 02:453像
我需要类似的东西来禁用所有断点并在每个“Catch ex as Exception”上放置一个断点。但是,我对此进行了一些扩展,因此它会在您选择的字符串的每个出现处都放置一个断点。所有你需要做的就是突出显示你想要断点的字符串并运行宏。
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
希望这对你有用 :)
作者: Paul Gerber 发布者: 28.04.2009 11:421像
保罗,非常感谢,但我有以下错误(消息框),可能是我需要重启我的电脑:
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
作者: Dmytro
发布者: 27.10.2009 03:54
来自类别的问题 :
- visual-studio 什么是C / C ++程序及其插件DLL的最佳免费内存泄漏检测器?
- visual-studio 以编程方式检索Visual Studio安装目录
- visual-studio Visual Studio 2008中的Build Solution和Batch Build有什么区别?
- visual-studio 如何强制Visual Studio重新生成aspx / ascx文件的.designer文件?
- visual-studio “在Visual Studio 2005 DataSet Designer中出现数据时,无法更改列的DataType”错误
- visual-studio Could not load type 'XXX.Global'
- debugging 你如何调试PHP脚本?
- debugging 如何在Google Chrome中启动JavaScript调试程序?
- debugging 如何将调试断点添加到Visual Studio的“查找结果”窗口中显示的行
- debugging 调试LINQ to SQL SubmitChanges()
- debugging 如何停止Visual Studio调试器在作业对象中启动我的进程?
- debugging 有没有办法在传统的代码调试意义上调试Velocity模板?
- breakpoints .NET源代码可以硬编码调试断点吗?
- breakpoints GDB断点
- breakpoints Eclipse - 由于缺少行号属性,无法安装断点
- breakpoints PHP Web开发IDE
- breakpoints 如何解决“断点当前不会被命中。此文档没有加载任何符号。” 警告?