Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GDB/Eclipse调试时向进程传递命令行参数_Eclipse_Debugging_Process_Gdb_Command Line Arguments - Fatal编程技术网

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

使用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的开头,我就可以开始调试了。但是

我正在尝试使用Eclipse中的GDB(CDT)调试流程。我可以开始调试,步进代码等等。所以,基本的设置似乎是可行的

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

我已采取的调试步骤:

  • 运行->调试配置->选择C/C++附加到应用程序->新建
  • 显示“按调试->选择进程”对话框
  • 按new->File explorer打开,我可以选择正确的可执行文件(再次:在Eclipse之外构建)
  • 之后,执行停止到main的开头,我就可以开始调试了。但是没有命令行参数
  • 那个么,在上面的场景中,我如何为附加的新应用程序传递命令行参数呢

    提前谢谢

    当“c++附加到应用程序”将调试器附加到已经运行的应用程序时,您不能期望能够传递命令行参数。无论何时启动可执行文件,都需要传递这些消息


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

    FYI,如果以后有人因同一问题而争吵:
    似乎可以使用gdb命令文件将参数传递给新附加的进程。我只是将下一行附加到命令文件:

    set args arg1 arg2 argX
    

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

    我没有附加到现有应用程序。请参见上文中的步骤3。我启动新进程而不是附加。但是为什么要使用“附加到应用程序”启动配置呢?这是为了调试已经运行的应用程序。不过,在Luna SR1中,单击“新建”(3)后显示的对话框还包括“参数”文本框,您可以在其中输入参数。我使用的是Juno SR2,在这种情况下不可能传递参数。然而,我试图创建虚拟项目,并通过该解决方案完成了调试工作。谢谢你的提示。