当前位置:  开发笔记 > 编程语言 > 正文

用于上一个和下一个的热键调用Visual Studio中的堆栈帧

如何解决《用于上一个和下一个的热键调用VisualStudio中的堆栈帧》经验,为你挑选了1个好方法。

Visual Studio提供了许多导航热键: F8用于当前面板中的下一个项目(搜索结果,错误...), Control+ K,N用于书签, Alt+ -用于返回等等.

有一个我找不到的热键,我甚至找不到它的菜单命令,所以我不能自己创建热键.

我不知道是否存在:Previous和Next call-stack frame.

我尝试在编程时不使用鼠标,但是当我需要返回堆栈时,我必须使用它来双击前一帧.

任何人?这样做的宏怎么样?



1> Oleg Svechka..:

我写了2个宏,以获得它:PreviousStackFrameNextStackFrame并分配快捷方式

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

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有