Visual Studio提供了许多导航热键: F8用于当前面板中的下一个项目(搜索结果,错误...), Control+ K,N用于书签, Alt+ -用于返回等等.
有一个我找不到的热键,我甚至找不到它的菜单命令,所以我不能自己创建热键.
我不知道是否存在:Previous和Next call-stack frame.
我尝试在编程时不使用鼠标,但是当我需要返回堆栈时,我必须使用它来双击前一帧.
任何人?这样做的宏怎么样?
我写了2个宏,以获得它:PreviousStackFrame
和NextStackFrame
并分配快捷方式
Function StackFrameIndex(ByRef aFrames As EnvDTE.StackFrames, ByRef aFrame As EnvDTE.StackFrame) As Long For StackFrameIndex = 1 To aFrames.Count If aFrames.Item(StackFrameIndex) Is aFrame Then Exit Function Next StackFrameIndex = -1 End Function Sub NavigateStack(ByVal aShift As Long) If DTE.Debugger.CurrentProgram Is Nothing Then DTE.StatusBar.Text = "No program is currently being debugged." Exit Sub End If Dim ind As Long = StackFrameIndex(DTE.Debugger.CurrentThread.StackFrames, DTE.Debugger.CurrentStackFrame) If ind = -1 Then DTE.StatusBar.Text = "Stack navigation failed" Exit Sub End If ind = ind + aShift If ind <= 0 Or ind > DTE.Debugger.CurrentThread.StackFrames.Count Then DTE.StatusBar.Text = "Stack frame index is out of range" Exit Sub End If DTE.Debugger.CurrentStackFrame = DTE.Debugger.CurrentThread.StackFrames.Item(ind) DTE.StatusBar.Text = "Stack frame index: " & ind & " of " & DTE.Debugger.CurrentThread.StackFrames.Count End Sub Sub PreviousStackFrame() NavigateStack(1) End Sub Sub NextStackFrame() NavigateStack(-1) End Sub