在 Visual Studio 中使用命令行参数进行调试

Posted

技术标签:

【中文标题】在 Visual Studio 中使用命令行参数进行调试【英文标题】:Debugging with command-line parameters in Visual Studio 【发布时间】:2010-09-22 20:36:59 【问题描述】:

我正在 Visual Studio 中开发 C++ 命令行应用程序,需要使用命令行参数对其进行调试。目前我只是用我需要的参数运行生成的 EXE 文件(比如program.exe -file.txt),但是这样我无法调试。有什么地方可以指定调试参数吗?

【问题讨论】:

相关帖子 - Passing command line parameters with Visual Studio C# 【参考方案1】:

我发现一些旧的命令行参数存储在我的启动项目源文件夹下的MyStartUpProject.csproj.user 文件中。删除此文件无效,Visual Studio 将其带回给我。我不得不编辑文件中的参数。

文件中的值没有显示在 VS、项目属性、调试中。在那里输入值会将它们附加到神秘的 MyStartUpProject.csproj.user 文件中的值。

【讨论】:

【参考方案2】:

Mozilla.org FAQ on debugging Mozilla on Windows 在这里很有趣。

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

Visual Studio 8 或 9(分别为 Visual Studio 2005 或 Visual Studio 2008)如下所示

devenv /debugexe '程序名称' '程序参数'

也可以使用explorer action 在 Visual Studio 调试器中启动程序。

【讨论】:

【参考方案3】:

对于 VS 2015 及更高版本,使用 Smart Command Line Arguments 扩展名。此插件添加了一个窗口,可让您打开和关闭参数:

该扩展程序还将参数存储在 JSON 文件中,允许您将它们提交到源代码管理。除了确保您不必每次都输入所有参数之外,这还可以作为对文档的有用补充,以供其他开发人员发现可用选项。

【讨论】:

【参考方案4】:

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

Solution窗口中右击Project,选择“Properties”,Debug(在左侧),然后在字段中输入参数 “应用程序参数”

请注意,它们应该用空格分隔。

【讨论】:

【参考方案5】:

在 Visual Studio 的 Solution 窗口中右键单击项目,选择 “Debugging”(在左侧),然后在字段中输入参数 “命令参数”

【讨论】:

【参考方案6】:

是的,它位于项目属性页面的调试部分。

自 2008 年以来在 Visual Studio 中:右键单击 项目,选择 Properties,转到 Debugging 部分 -- 有一个框对于“命令参数”。 (提示:不是解决方案,而是项目)。

【讨论】:

*** 是唯一可用的 MS 文档! 要小心。这不会更改实际的项目文件,而是更改 vcxproj.user-file。 注意:如果您的解决方案中有多个项目,请记住右键单击要运行的项目并“设置为启动项目”。 正确。但显然在VS2017中它不称为“调试”,而是“调试”。我们可能永远不知道为什么。 确保您在属性页面顶部的下拉列表中选择了正确的配置,即与您尝试运行的配置相同。【参考方案7】:

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

而不是

int main(int argc, char **argv)

我不得不使用

int main(int argc, char *argv[])

我不知道为什么它是必要的,但它确实有效。

【讨论】:

有同样的问题,但上面提到的两个声明都不起作用。由于我正在使用 64 位机器,因此解决方案是将平台从 x86 更改为 x64。【参考方案8】:

Microsoft Visual Studio Ultima 2013。

你可以去调试菜单→主属性配置属性调试然后你会看到命令框行参数。

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

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

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

【讨论】:

它在 MS VS 2015 中也有点像。在我前往“调试-> projectname 属性”之前,我必须打开可通过下拉菜单访问的“配置管理器”,默认情况下包含“调试”和“发布”。弹出一个窗口,我可以在其中添加新的“配置”项目。这些项目在“Debug -> projectname properties”中可用。【参考方案9】:

在 Visual Studio 2010 中,右键单击项目,选择 Properties,单击左侧窗格中的配置属性部分,然后单击 Debugging,然后在右侧窗格中出现是一个命令参数框。

在那输入命令行参数。你已准备好出发。现在调试并查看结果。如果您厌倦了更改属性,请暂时直接在程序中输入。

【讨论】:

【参考方案10】:

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

【讨论】:

是的,使用Ctrl+Alt+P 附加(或单击“调试”>“附加到进程...”)。但这并不能真正回答 OP 问题 ;)

以上是关于在 Visual Studio 中使用命令行参数进行调试的主要内容,如果未能解决你的问题,请参考以下文章

命令行的 Visual Studio 负载测试设置参数

visual studio 中添加命令行参数

如何在 Visual Studio 2015 调试中将“%”符号作为命令行参数 (argv) 传递?

Visual Studio单元测试和命令行参数,以避免源代码管理中的密码

在 Visual Studio 中使用命令行输入文本进行调试

如何使用Visual Studio“命令行参数”选项将C#项目的stdout重定向到文件