我想使用带有CDT的Eclipse Oxygen(Windows主机),我想使用GDB调试在嵌入式Linux机器上运行的C ++程序,以及一些精简的Ubuntu版本。
为此,我添加了一个“ C ++远程应用程序”调试目标和一个ssh连接。 在Eclipse的Debug Configurations对话框的Main选项卡上,有2个文本框: C / C ++应用程序的远程绝对文件路径-包含“ / home / ubuntu / myapp”,以及要在应用程序之前执行的命令-到目前为止,其中包含“ chmod + x / home / ubuntu / myapp”,以使我的程序可执行。
这基本上可以工作。 但是现在我的程序需要设置一些系统设置,例如网络缓冲区大小和线程的CPU亲和力,这些设置仅在“ sudo su”并输入密码之后才起作用-在SSH控制台上手动启动该程序时。
为了能够调试程序而不会出现任何“拒绝权限”错误,我尝试将“在应用程序之前执行的命令”行扩展为:“ chmod + x / home / ubuntu / myapp && echo MYPASSWORD | sudo- S su”。 这样,我不会在Eclipse控制台中提示输入密码,并且我的应用程序确实启动了。但是我在更改网络缓冲区(例如/ proc / sys / net / core / rmem_max和默认值)大小时遇到“权限被拒绝”错误。
似乎Eclipse一次又一次打开了多个会话,并且“ sudo su”不再适用吗?
我想要的东西可以实际实现吗?如果可以,怎么实现?