我正在 Visual Studio 中开发 C++ 命令行应用程序,需要使用命令行参数对其进行调试。目前我只是使用我需要的参数运行生成的 EXE 文件(如 program.exe -file.txt
),但这样我无法调试。有没有可以指定调试参数的地方?
是的,它位于项目属性页面的调试部分。
自 2008 年以来在 Visual Studio 中:右键单击项目,选择属性,转到调试部分 - 有一个“命令参数”框。 (提示:不是解决方案,而是项目)。
Mozilla.org FAQ on debugging Mozilla on Windows 在这里很有趣。
简而言之,可以从命令行对程序调用 Visual Studio 调试器,允许在调用命令行程序时直接在命令行上指定命令行参数。
这对于 Visual Studio 8 或 9(分别为 Visual Studio 2005 或 Visual Studio 2008)如下所示
devenv /debugexe 'program name' 'program arguments'
也可以使用 explorer action 在 Visual Studio 调试器中启动程序。
即使您确实在 Visual Studio 之外启动了可执行文件,您仍然可以使用“附加”命令将 Visual Studio 连接到您已经运行的可执行文件。例如,当您的应用程序在另一个应用程序中作为插件运行时,这可能很有用。
Ctrl+Alt+P
附加(或单击“调试”>“附加到进程...”)。但这并不能真正回答 OP 问题 ;)
微软 Visual Studio 终极版 2013。
您只需转到 DEBUG 菜单 → Main Properties → Configuration properties → Debugging,然后您将看到命令行参数框。
实际上,您可以为所有不同的配置设置相同的输入参数,而不仅仅是调试。
从配置的下拉菜单中选择:所有配置并插入输入参数(每个参数用空格分隔)。
现在,您可以在不同的模式下执行程序,而不必每次都更改输入参数。
对于 VS 2015 及更高版本,使用 Smart Command Line Arguments 扩展。这个插件添加了一个窗口,允许您打开和关闭参数:
https://mbulli.gallerycdn.vsassets.io/extensions/mbulli/smartcommandlinearguments/2.1.2/1554395906327/vsix_preview_image.png
该扩展程序还将参数存储在 JSON 文件中,允许您将它们提交到源代码控制。除了确保您不必每次都输入所有参数之外,这还可以作为文档的有用补充,以供其他开发人员发现可用选项。
在带有 .NET Core 控制台应用程序的 Visual Studio 2017 中,执行以下操作:
右键单击解决方案窗口中的项目,选择“属性”,调试(在左侧),然后在“应用程序参数”字段中输入参数。
请注意,它们应该是空格分隔的。
这可能会帮助一些仍然有问题的人。我使用 Visual Studio 2015,只有在更改 argv
的定义时才能传递参数。
代替
int main(int argc, char **argv){
}
我不得不使用
int main(int argc, char *argv[]){
}
我不知道为什么它是必要的,但它有效。
在 Visual Studio 的解决方案窗口中右键单击项目,选择“调试”(在左侧),然后在“命令参数”字段中输入参数:
https://i.stack.imgur.com/eMjKA.jpg
在 VS 2022 中,可以调试任何可执行文件。打开包含 .exe 文件的文件夹
右键单击 .exe 文件,然后单击“设置为启动项”
如果配置文件已经创建,再次右键单击 .exe 文件并单击“添加调试配置”或“打开调试和启动设置”。
将 args 添加到 launch.vs.json,例如
{
"version": "0.2.1",
"defaults": {},
"configurations": [
{
"type": "default",
"project": "ffprobe.exe",
"projectTarget": "",
"name": "ffprobe.exe",
"args": [ "C:\\Temp\\test-file" ]
}
]
}
右键单击 .exe 文件,然后单击“调试”
在 Visual Studio 2010 中,右键单击项目,选择“属性”,单击左侧窗格中的配置属性部分,然后单击“调试”,然后在右侧窗格中有一个命令参数框。
在其中输入命令行参数。你已准备好出发。现在调试并查看结果。如果您厌倦了更改属性,请暂时直接在程序中输入。
我发现一些旧的命令行参数存储在我的启动项目源文件夹下的 MyStartUpProject.csproj.user
文件中。删除此文件无效,Visual Studio 将其带回给我。我不得不编辑文件中的参数。
文件中的值没有显示在 VS、项目属性、调试中。在那里输入值会将它们附加到神秘的 MyStartUpProject.csproj.user
文件中的值。
对于那些使用VS2022并且您没有launchSchema.json的人,如上所述,有一个使用launchSettings.json
插入args
的解决方案。
输入文件并使用 "commandLineArgs": "
argument here",
插入您的参数
这对我有用。