我对Eclipse很陌生。尝试设置来进行远程调试。
这里是情况,我连接到远程机器运行Linux,我运行的是Windows。
1)我已经为Eclipse安装了所有必要的工具,并且能够连接到Linux机器。
2)远程机器有gdbserver
linux1[1]% gdbserver
Usage: gdbserver [OPTIONS] COMM PROG [ARGS ...]
gdbserver [OPTIONS] --attach COMM PID
gdbserver [OPTIONS] --multi COMM
COMM may either be a tty device (for serial debugging), or
HOST:PORT to listen for a TCP connection.
Options:
--debug Enable debugging output.我需要在gdbserver中配置任何东西吗?
3)在Eclipse中还应该配置什么?为了远程调试?
4)我的GDB版本是否与远程机器GDB不同?
发布于 2010-11-20 21:28:37
gdbserver需要更多的参数。例如,假设gdbserver localhost:1337 yourprogram yourprogramarguments并保持其运行。
然后,在Eclipse中,为"C/C++应用程序“创建一个新的调试配置。在主选项卡的底部,选择GDB (GSF) Remote System Process Launcher作为启动程序。在调试器选项卡上,选择gdbserver Debugger作为调试器。在connection下,将TCP作为连接类型,并将localhost:1337作为地址。启动配置时,可以通过向控制台输入命令来控制远程gdb。
发布于 2017-08-10 08:56:05
CLI检查
在你做任何事之前,确保你:
这个答案假设您可以在开发板上做以下工作:
sudo apt-get install gdbserver
gdbserver :1234 path/to/executable在主机上:
aarch64-linux-gnu-gdb \
-ex "target remote board-hostname:1234" \
-ex "file path/to/cross/compiled/executable" \
-ex 'tb main' \
-ex c然后对所有内容进行正确的调试。
Eclipse安装
在Ubuntu16.04主机上测试,EclipseOxy4.7.0(从网站下载),gdbserver 7.12,aarch64-linux-gnu-gdb 7.6。
我成功地使用了以下所有方法:
手册
使用此方法,在Eclipse上运行调试之前,我们必须在目标上启动gdbserver。
Pro:通过Eclipse配置SSH连接以允许Eclipse运行gdbserver,这是另一个可能的失败点。
每次调试启动时,您都必须重新启动gdbserver。如果Eclipse理解gdbserver --multi,这是可以克服的,但我不认为它是这样的?
由于它的简单性,我建议您首先使用此方法。
打开调试配置,然后创建新的"C / C++远程应用程序“。
在“Main”选项卡下:
为什么要这样做:自动发射器首先与SSH连接到板上,然后为您启动gdbserver .。

在“调试器”项下:
“GDB调试器”:与主机上的CLI相同,此example
aarch64-linux-gnu-gdb:将主机名和端口设置为传递到CLI上的主机(board-hostname和1234))


最后,在目标上手动启动gdbserver,就像我们从CLI中所做的那样:
gdbserver :1234 path/to/executable并正常地从Eclipse启动调试器。
每次终止程序时都必须重新启动gdbserver。
带有密码的自动
这是开发板的最佳方法,因为开发板已经固定了公开已知的密码。
它用SSH和密码连接到目标,每次都会在目标上自动启动gdbserver,这非常方便!
目标gdbserver标准输出转到Eclipse窗口,这进一步减少了窗口切换。
在Eclipse集合中:
关于“安全存储无法保存主密码”的错误,如“How to solve "Secure storage was unable to save the master password" in Eclipse CDT remote application with SSH password debug connection?
/root/path/to/project/path/to/executable
”。
带有公钥的自动
非常类似于密码身份验证,但必须转到:"Connection“、"New",然后选择”基于公钥的身份验证“。
优点:
如果您有未加密的私钥(不安全,但对devboards)
),则
缺点:
时第一次重做密钥设置时受到伤害。
因此,对于服务器,我更喜欢这种方法。
SSH可以不使用密码进行连接,如果您:
~/.ssh/id_rsa.pub的~/.ssh/authorized_keys在主机上有一个非加密的私钥,这绕过了我们的密码问题--正确设置
在使用此方法之前,请确保您的授权密钥在命令行中工作,即您现在应该能够:
ssh user@host不需要输入任何密码。
发布于 2019-10-10 09:13:02
Eclipse2019-03更新
在Eclipse2019中,上述步骤没有工作,因为eclipse更改了"C/C++远程应用程序“中配置的布局。
@Ciro贴子更新:
以下步骤与我一起工作:在"C / C++远程应用程序“下的”调试配置“下,在”Main“选项卡下:
在“调试器”项下:
这是我所做的唯一改变,以便前面的答案适用于我。
https://stackoverflow.com/questions/4038760
复制相似问题