我正在使用Visual Studio开发C++命令行应用程序,需要使用命令行参数进行调试。目前,我只是使用所需的参数运行生成的EXE文件(例如program.exe -file.txt
),但这种方式无法进行调试。是否有地方可以指定调试参数?
我正在使用Visual Studio开发C++命令行应用程序,需要使用命令行参数进行调试。目前,我只是使用所需的参数运行生成的EXE文件(例如program.exe -file.txt
),但这种方式无法进行调试。是否有地方可以指定调试参数?
是的,它在项目属性页面的调试部分。
自2008年以来,在Visual Studio中:右键单击项目节点,选择属性,转到调试部分--有一个名为“命令参数”的框。
这里与Mozilla.org关于在Windows上调试Mozilla的常见问题解答有关。
简而言之,Visual Studio调试器可以从命令行调用程序,允许在命令行直接指定命令行参数来调用命令行程序。
对于Visual Studio 8或9(分别是Visual Studio 2005或Visual Studio 2008),看起来像下面这样:
devenv /debugexe '程序名称' '程序参数'
还可以有一个资源管理器操作以在Visual Studio调试器中启动程序。
Ctrl+Alt+P
进行附加(或单击“调试”>“附加到进程...”)。但这并没有真正回答 OP 的问题 ;) - T_D微软 Visual Studio Ultima 2013。
您可以直接进入DEBUG菜单→Main Properties→Configuration properties→Debugging,然后您将看到命令行参数的框。
实际上,您可以为所有不同的配置设置相同的输入参数,而不仅仅是调试。
从配置下拉菜单中选择:所有配置,并插入输入参数(每个参数用空格分隔)。
现在,您可以在不更改输入参数的情况下以不同模式执行程序。
在VS 2022中,可以对任何可执行文件进行调试。
打开包含.exe文件的文件夹:
右键单击.exe文件,然后单击“设置为启动项”
再次右键单击.exe文件,然后单击“添加调试配置”,或者如果已经创建了配置文件,则单击“打开调试和启动设置”。
向launch.vs.json添加args,例如:
{
"version": "0.2.1",
"defaults": {},
"configurations": [
{
"type": "default",
"project": "ffprobe.exe",
"projectTarget": "",
"name": "ffprobe.exe",
"args": [ "C:\\Temp\\test-file" ]
}
]
}
使用VS 2015及以上版本,使用智能命令行参数扩展。该插件添加了一个窗口,允许您打开和关闭参数:
右键单击“解决方案”窗口中的项目,选择“属性”,选择左侧的 “调试(Debug)”,并将参数输入到“应用程序参数(Application Arguments)”字段中。
注意它们应该以空格分隔。
argv
的定义时才能传递参数。int main(int argc, char **argv){
}
我必须使用
int main(int argc, char *argv[]){
}
gdb
作为调试器,请输入以下命令:gdb -args ./program -argument
。 - Jesper Juhl