【问题标题】:Difference between Run Code and Run without Debugging in VS CodeVS Code 中运行代码和不调试运行之间的区别
【发布时间】:2020-10-26 09:34:04
【问题描述】:

我是cpp编程的新手,使用Visual Studio代码,我不明白Ctrl + Alt + N(运行代码)和Ctrl + F5(不调试运行)有什么区别。

【问题讨论】:

  • run without debugging 实际上正在正常运行您的代码。当你运行它时 with 调试它实际上意味着你编写的程序实际上运行在另一个跟踪内存的“调试器”程序中 - 所以如果你对内存做错了什么,它可以告诉你你知道它 - 如果你愿意,可以在代码的某些行为你暂停程序。
  • 在我看来,MSVS 有点想替你思考,所以它很烦人地决定默认将你置于调试模式,这会减慢编译速度并减慢程序的运行时间。只有当您真正想要进行调试时,我才会进入调试模式。
  • 如果您是初学者,那么您可能只想在检查内存泄漏或分段错误时使用调试器模式。

标签: c++ visual-studio-code


【解决方案1】:

Ctrl + Alt + N(运行代码)是您安装的“Code Runner”扩展提供的快捷方式,而Ctrl + F5(不带调试运行)是 VS Code 默认提供的快捷方式。这两个快捷方式都无需调试即可运行代码,并且具有相同的功能。

【讨论】:

    【解决方案2】:

    CTRL-F5 就是 F5

    可能值得注意的是,因为它被标记为 c++CTRL-F5在没有调试的情况下运行实际上在 8 月份运行 调试2021 年 2 月 23 日。这符合应用程序 according to these docs 的规范,“提示:运行操作始终可用,但并非所有调试器扩展都支持“运行”。在这种情况下,“运行”将与“运行”相同调试'。”

    SHIFT-F5 不是灵丹妙药

    相比之下,来自标准 C++ 扩展的SHIFT-F5 无需调试即可运行,但运行由其自身机制设置的目标,而不是F5CTRL-F5 使用的当前启动配置。由于它绕过了 launch.json 启动配置,因此它不允许您更改应用的当前工作目录的位置或将命令行参数传递给它。

    【讨论】:

    • “运行与调试相同”让我抓狂。我不想每次运行程序时都启动调试器。你知道如何恢复旧的行为吗?我只想编译和运行一个没有任何复杂扩展的 c/c++ 文件。 Shift+F5 什么都不做(甚至没有定义为键绑定),而 Ctrl+F5 只是像 F5 一样运行调试器。
    • 如果你想要的就这么简单,你不能在终端中执行一个单行代码来构建和运行你的单文件 C++ 程序吗? VS Code 可能允许您将一个衬垫的执行绑定到按键。 SHIFT-F5 由 Microsoft 维护的标准 C++ 扩展定义:marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
    • 可以,但我仍然想要 CTRL-F5 功能
    • “截至 2021 年 8 月 23 日,在不调试的情况下运行实际上在调试的情况下运行”。感谢您的解释,因为这个意外的变化是在返回一个未完成的开发容器时发生的。这种类型的更改是不直观的,我希望他们在启用此“功能”之前提示。
    猜你喜欢
    • 2022-10-14
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2022-08-09
    • 1970-01-01
    相关资源
    最近更新 更多