debugging VS代码-通过键盘跳转到当前调试位置

4smxwvx5  于 2022-11-14  发布在  其他
关注(0)|答案(4)|浏览(138)

在VS代码中,如何跳转到调试器的当前位置?它由一条淡黄色的线指示,但我在浏览其他文件和函数时往往会迷路,只能费力地找到返回调试会话当前暂停位置的路。
应该很简单,但我在文档中找不到任何东西。我甚至在键盘Map中检查了所有包含“debug”的操作,但没有找到我要找的东西。

btxsgosb

btxsgosb1#

@更新了最近VSCode的答案:

x1月0n1x日

在最近的VSCode(1.71 +)中,有一个Navigate to Top of Call Stack命令(workbench.action.debug.callStackTop)。您可以在键盘快捷键菜单中为它分配一个快捷键。
--〉由CoderBlue指出,请在那里留下赞成票:)

VSCode〈1.71的原始答案:

通过单击(或使用键盘选择)“调用栈”视图中最顶部的条目,可以实现所需的效果(跳转到当前执行点)。
使用multi-command macro extension(受Mark's answer启发),可以创建一个自定义命令,该命令将始终选择调用栈视图中的最顶层条目。
这将转到您的keybindings.json

{
    "key": "cmd+f4",
    // Go to current debugging position
    "command": "extension.multiCommand.execute",
    "args": {
      "sequence": [
        "workbench.debug.action.focusCallStackView",
        "list.clear",
        "list.focusFirst",
        "list.select"
        // optional, to focus your editor:
        // workbench.files.action.focusOpenEditorsView
      ]
    }
},
sczxawaw

sczxawaw2#

似乎没有任何go to current breakpoint命令,只有上一个和下一个命令。
不过,我看这个“bug”可能有用:请参阅repl evaluation causes editor to jump to current breakpoint
所以你可以只关注repl,回车,然后你会跳到你当前的断点。它确实会用一个undefined的结果污染你的调试控制台,但也许这是可以接受的。
或者你可以给一个宏分配一个键绑定,这个宏可以执行focus命令,并一次性清除调试控制台。使用你选择的宏扩展--我使用的是multi-command below--这将进入你的设置:

"multiCommand.commands": [

 {
  "command": "multiCommand.gotoCurrentBreakpoint",
  // "interval": 350,
  "sequence": [

    "workbench.debug.action.focusRepl",
    "repl.action.acceptInput",

    // following command clears the debug console if you wish
    "workbench.debug.panel.action.clearReplAction"
  ]
 }
]

和一些键绑定:

{
  "key": "alt+/",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.gotoCurrentBreakpoint" },
},

基础“bug”(如果是bug)将在那里使用多长时间.....?

pw9qyyiw

pw9qyyiw3#

通过单击(或使用键盘选择)“调用栈”视图中最顶部的条目,可以实现所需的效果(跳转到当前执行点)。
“使用键盘选择”现在通过VSCode 1.70(2022年7月)和issue 149975(“添加键绑定命令以在调试时导航调用堆栈(无需鼠标)”)实现
请参阅PR 154117commit 3d3bfce

用于导航调用堆栈的命令”

添加用于导航调用堆栈的命令。
用户可以手动添加此键绑定。
介绍新命令(调试停止时可用):

  • Debug: Navigate to Top of Call Stack
  • Debug: Navigate to Bottom of Call Stack
  • Debug: Navigate Up Call Stack
  • Debug: Navigate Down Call Stack

因此,您可以轻松地将快捷键与“导航到调用栈顶部”相关联,该位置是“我的调试会话当前暂停的位置”。
目前,VSCode insiders已提供此功能。

lpwwtiir

lpwwtiir4#

快速添加快捷键跳转到VS代码中的当前调试位置

VonC's answer上构建,特别是使用当前版本的VS代码1.71.0:

1.键入ctrl-k ctrl-s以进入键盘快捷键。
1.在搜索框中键入“callstack”并找到“导航到调用栈顶部”。
1.设置密钥绑定,例如,我使用ctrl-r d

1.试试看!现在当我键入ctrl-r d时,我就在那里了!

相关问题