使用 GDB/Eclipse 调试时将命令行参数传递给进程
Passing command line arguments to process when debugging with GDB/Eclipse
我正在尝试使用 Eclipse (CDT) 中的 GDB 调试进程。我可以开始调试,踩代码等等。因此,基本设置似乎有效。
但是,我不明白如何将命令行参数传递给进程。可执行文件不是用 Eclipse 构建的,我使用单独的 make 文件。
我调试的步骤:
- 运行 -> 调试配置 -> Select C/C++ 附加到应用程序 -> 新建。
- 按调试 -> Select 显示进程对话框。
- 按新建 -> 文件资源管理器打开,我能够 select 更正可执行文件(再一次:在 Eclipse 之外构建)
- 在那之后,执行停止到 main 的开头,我就可以开始调试了。但是没有命令行参数。
那么,我如何在上面的场景中为附加的新应用程序传递命令行参数?
提前致谢!
由于 "c++ attach to application" 将调试器附加到已经 运行 的应用程序,您不能指望能够传递命令行参数。您需要在启动可执行文件的任何地方传递它们。
我认为您正在寻找普通的 "C/C++ application" 启动配置。它确实需要一个项目(您可以创建一个虚拟项目或导入您的实际 makefile 项目,如果您使用的话)。使用这种类型的启动配置,您将获得额外的 "Arguments" 选项卡,您可以在其中输入 "command-line" 个参数。
仅供参考,如果有人后来遇到同样的问题:
似乎可以使用 gdb 命令文件将参数传递给新的附加进程。我只是将下一行附加到命令文件:
set args arg1 arg2 argX
...并在调试器选项中选择该文件作为 GDB 命令行。这些参数在进程启动时传递给 main。
我正在尝试使用 Eclipse (CDT) 中的 GDB 调试进程。我可以开始调试,踩代码等等。因此,基本设置似乎有效。
但是,我不明白如何将命令行参数传递给进程。可执行文件不是用 Eclipse 构建的,我使用单独的 make 文件。
我调试的步骤:
- 运行 -> 调试配置 -> Select C/C++ 附加到应用程序 -> 新建。
- 按调试 -> Select 显示进程对话框。
- 按新建 -> 文件资源管理器打开,我能够 select 更正可执行文件(再一次:在 Eclipse 之外构建)
- 在那之后,执行停止到 main 的开头,我就可以开始调试了。但是没有命令行参数。
那么,我如何在上面的场景中为附加的新应用程序传递命令行参数?
提前致谢!
由于 "c++ attach to application" 将调试器附加到已经 运行 的应用程序,您不能指望能够传递命令行参数。您需要在启动可执行文件的任何地方传递它们。
我认为您正在寻找普通的 "C/C++ application" 启动配置。它确实需要一个项目(您可以创建一个虚拟项目或导入您的实际 makefile 项目,如果您使用的话)。使用这种类型的启动配置,您将获得额外的 "Arguments" 选项卡,您可以在其中输入 "command-line" 个参数。
仅供参考,如果有人后来遇到同样的问题:
似乎可以使用 gdb 命令文件将参数传递给新的附加进程。我只是将下一行附加到命令文件:
set args arg1 arg2 argX
...并在调试器选项中选择该文件作为 GDB 命令行。这些参数在进程启动时传递给 main。