关于c ++:使用Visual Studio中的命令行参数进行调试

Debugging with command-line parameters in Visual Studio

我正在VisualStudio中开发C++命令行应用程序,需要用命令行参数调试它。目前,我只是用我需要的参数(比如这个program.exe -file.txt)运行生成的exe文件,但是这样我就不能调试了。是否可以指定调试参数?

  • 使用Visual Studio C传递相关的命令行参数#


是的,它在项目属性页的调试部分。

在vs-since-2008中:右键单击project,选择properties,转到Debugging部分——有一个框表示"Command Arguments"。(提示:不是solution,而是project)

  • StackOverflow是唯一可用的MS文档!
  • 小心点。这不会更改实际的项目文件,而是更改vcxproj.user-file。
  • 注意:如果解决方案中有多个项目,请记住右键单击要运行的项目并"设置为启动项目"。
  • 当场。但显然在VS2017中,它不是"调试",而是"调试"。我们可能永远不知道为什么。
  • 确保在属性页顶部的下拉列表中选择了正确的配置,即与要运行的配置相同。
  • 在使用命令行分析器之类的库时,是否可以使用命名参数?例如,我怎样才能通过像-url https://google.com -p pass -u user这样的东西?
  • 找到它了。这就足够了:--url"https://google.com" -p"pass" -u"user"
  • 是否有针对C项目的解决方案?
  • 可以创建多个配置吗?在intellij思想中,您可以有多个cmd参数,并且只使用您选择的参数运行。
  • @MartinBeckett不启用垃圾收集器。因为整个MS可能被移除。lol


Mozilla.org关于在Windows上调试Mozilla的常见问题解答在这里很有趣。

简而言之,可以从命令行在程序上调用Visual Studio调试器,允许在直接在命令行上调用命令行程序时指定命令行参数。

对于Visual Studio 8或9,如下所示

1
 devenv /debugexe 'program name' 'program arguments'

也可以使用资源管理器操作来启动Visual Studio调试器中的程序。


即使在Visual Studio之外启动了可执行文件,也可以使用"attach"命令将Visual Studio连接到已经运行的可执行文件。这可能很有用,例如,当您的应用程序作为另一个应用程序中的插件运行时。

  • 是,使用Ctrl+Alt+P附加(或单击"调试">"附加到进程…")。但这并不能真正回答操作问题;)


Microsoft Visual Studio Ultima 2013。

您只需转到"调试"菜单→主属性→配置属性→调试,然后您将看到命令行参数的框。

实际上,您可以为所有不同的配置设置相同的输入参数,而不仅仅是为了调试。

从配置下拉菜单中选择:所有配置并插入输入参数(每个参数用空格分隔)。

现在,您可以在不同的模式下执行程序,而不必每次都更改输入参数。

  • 在微软和2015年的竞争中,情况也差不多。在我进入"debug->projectname properties"之前,我必须打开默认情况下包含"debug"和"release"的下拉列表中可访问的"配置管理器"。弹出一个窗口,我可以在其中添加新的"配置"项。这些项在"调试->项目名称属性"中可用。


在带有.NET核心控制台应用程序的Visual Studio 2017中,请执行以下操作:

右键单击"解决方案"窗口中的项目,选择"属性",然后调试(在左侧),在"应用程序参数"字段中输入参数。

请注意,它们应该是间隔的。


这可能会帮助一些仍然有问题的人。我使用的是Visual Studio 2015,我只能在更改argv的定义时传递参数。

而不是

1
2
int main(int argc, char **argv){
}

我不得不使用

1
2
int main(int argc, char *argv[]){
}

我不知道为什么这是必要的,但它起作用了。


右键单击vs解决方案窗口中的项目,选择"调试"(左侧),将参数输入到"命令参数"字段中:

enter image description here


在Visual Studio 2010中,右键单击项目,选择"属性",单击左窗格中的"配置属性"部分,然后单击"调试",然后在右窗格中有一个用于命令参数的框。

在其中输入命令行参数。你很高兴去。现在调试并查看结果。如果您厌倦了在属性中进行更改,那么可以临时直接在程序中提供输入。