浦口区网站建设,兼职网站开发团队工作项目总结,网站域名解释怎么做,网站备案可以做电影网站吗我有一个遍历文件层次结构的程序#xff0c;程序根据传入的文件路径#xff0c;对该路径下的所有文件进行遍历。这个程序生成一个名为 ftw 的可执行文件#xff0c;如果我要遍历 /bin 目录#xff0c;用法为#xff1a;
ftw /bin问题是#xff0c;如果我想单步跟踪…我有一个遍历文件层次结构的程序程序根据传入的文件路径对该路径下的所有文件进行遍历。这个程序生成一个名为 ftw 的可执行文件如果我要遍历 /bin 目录用法为
ftw /bin问题是如果我想单步跟踪看看程序是如何遍历文件层次结构的那么在启动调试器时需要知道传给 ftw 程序的路径是什么而且需要调试器自动传给 ftw 。
我查找了资料资料告诉我
在使用VSCode和CMake编写C程序并进行调试时你可以通过设置 launch.json 文件来传递参数。以下是实现的步骤 配置调试启动文件 launch.json 打开VSCode切换到调试视图点击配置齿轮图标或者选择 “创建一个启动配置文件”然后选择 “C(GDB/LLDB)”。 修改 launch.json 文件 找到 configurations 部分并创建一个新的配置类似于下面的示例
{version: 0.2,configurations: [{name: CMake Debug,type: cppdbg,request: launch,program: ${workspaceFolder}/build/your_executable, // 修改成你的可执行文件路径args: [arg1, arg2, arg3], // 在这里传入参数stopAtEntry: false,cwd: ${workspaceFolder},environment: [],externalConsole: false,MIMode: gdb,preLaunchTask: cmake-build-debug}]
}确保将 program 字段设置为构建后的可执行文件路径。在 args 字段中将需要传入的参数作为一个数组填入。 保存 launch.json 文件并返回到调试视图。 开始调试 点击调试按钮开始调试VSCode 将会使用你在 launch.json 文件中配置的参数来运行你的程序。
通过这样的方式你就可以在进入调试之前传入参数了。
但是这种方式对我的代码不起作用我所使用的是 CMake Debug如下图所示。(也可以使用快捷键 Ctrl F5) 通过测试发现以下步骤可以正确传入参数 在 Linux 环境下使用 VSCode 和 CMake 编写 C 程序并且需要在进入调试之前传递参数你可以按照以下步骤操作
在 .vscode 目录下创建一个名为 settings.json 的文件。编辑 settings.json 文件将待传递的参数写入 cmake.debugConfig 部分。例如如果你想传递参数 first_arg、second-arg 和 third arg可以按照以下格式添加
{cmake.debugConfig: {args: [first_arg,second-arg,third arg]}
}点击 VSCode 底部状态栏中的 Debug 按钮或者 Launch 按钮运行你的程序。
这样你的 C 程序将会接收到传递的参数。在你的 main.c 文件中你可以使用 argc 和 argv 来获取这些参数。例如
#include stdio.hint main(int argc, char **argv) {printf(总参数个数为%d\n, argc);for (int i 0; i argc; i) {printf(第%d个参数为%s\n, i 1, argv[i]);}return 0;
}这样你就可以在进入调试之前成功传递参数给你的 C 程序了。 例子输出为
总参数个数为:4
第1个参数为:/home/Helloworld/build/Helloworld
第2个参数为:first_arg
第3个参数为:second-arg
第4个参数为:three arg那么为什么在 launch.json 中设置 “args” 不起作用
这是以为 launch.json 不是由 CMake 工具调试或运行功能使用的而是由 F5 使用的。