使用 GDB/Eclipse 调试时将命令行参数传递给进程

Passing command line arguments to process when debugging with GDB/Eclipse

我正在尝试使用 Eclipse (CDT) 中的 GDB 调试进程。我可以开始调试,踩代码等等。因此,基本设置似乎有效。

但是,我不明白如何将命令行参数传递给进程。可执行文件不是用 Eclipse 构建的,我使用单独的 make 文件。

我调试的步骤:

  1. 运行 -> 调试配置 -> Select C/C++ 附加到应用程序 -> 新建。
  2. 按调试 -> Select 显示进程对话框。
  3. 按新建 -> 文件资源管理器打开,我能够 select 更正可执行文件(再一次:在 Eclipse 之外构建)
  4. 在那之后,执行停止到 main 的开头,我就可以开始调试了。但是没有命令行参数。

那么,我如何在上面的场景中为附加的新应用程序传递命令行参数?

提前致谢!

由于 "c++ attach to application" 将调试器附加到已经 运行 的应用程序,您不能指望能够传递命令行参数。您需要在启动可执行文件的任何地方传递它们。

我认为您正在寻找普通的 "C/C++ application" 启动配置。它确实需要一个项目(您可以创建一个虚拟项目或导入您的实际 makefile 项目,如果您使用的话)。使用这种类型的启动配置,您将获得额外的 "Arguments" 选项卡,您可以在其中输入 "command-line" 个参数。

仅供参考,如果有人后来遇到同样的问题:
似乎可以使用 gdb 命令文件将参数传递给新的附加进程。我只是将下一行附加到命令文件:

set args arg1 arg2 argX

...并在调试器选项中选择该文件作为 GDB 命令行。这些参数在进程启动时传递给 main。