使用GDB/Eclipse调试时向进程传递命令行参数
我正在尝试使用Eclipse中的GDB(CDT)调试流程。我可以开始调试,步进代码等等。所以,基本的设置似乎是可行的 然而,我不明白如何将命令行参数传递给进程。可执行文件不是用Eclipse构建的,我使用单独的make文件 我已采取的调试步骤:使用GDB/Eclipse调试时向进程传递命令行参数,eclipse,debugging,process,gdb,command-line-arguments,Eclipse,Debugging,Process,Gdb,Command Line Arguments,我正在尝试使用Eclipse中的GDB(CDT)调试流程。我可以开始调试,步进代码等等。所以,基本的设置似乎是可行的 然而,我不明白如何将命令行参数传递给进程。可执行文件不是用Eclipse构建的,我使用单独的make文件 我已采取的调试步骤: 运行->调试配置->选择C/C++附加到应用程序->新建 显示“按调试->选择进程”对话框 按new->File explorer打开,我可以选择正确的可执行文件(再次:在Eclipse之外构建) 之后,执行停止到main的开头,我就可以开始调试了。但是
我认为您正在寻找普通的“C/C++应用程序”启动配置。它确实需要一个项目(您可以创建一个虚拟项目或导入实际的makefile项目,如果您使用该项目的话)。使用这种类型的启动配置,您将获得额外的“参数”选项卡,您可以在其中输入“命令行”参数。FYI,如果以后有人因同一问题而争吵:
似乎可以使用gdb命令文件将参数传递给新附加的进程。我只是将下一行附加到命令文件:
set args arg1 arg2 argX
…并在调试器选项中选择该文件作为GDB命令行。这些参数是在进程启动时传递给main的。我没有附加到现有应用程序。请参见上文中的步骤3。我启动新进程而不是附加。但是为什么要使用“附加到应用程序”启动配置呢?这是为了调试已经运行的应用程序。不过,在Luna SR1中,单击“新建”(3)后显示的对话框还包括“参数”文本框,您可以在其中输入参数。我使用的是Juno SR2,在这种情况下不可能传递参数。然而,我试图创建虚拟项目,并通过该解决方案完成了调试工作。谢谢你的提示。