new*_*int 10 c eclipse remote-debugging
我是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.
Run Code Online (Sandbox Code Playgroud)
我需要在gdbserver???中配置任何东西吗?
3)我还应该在Eclipse中配置什么?用于远程调试?
4)我的GDB版本与远程机器GDB有什么不同?
gdbserver需要更多的论据.例如,说gdbserver localhost:1337 yourprogram yourprogramarguments并保持运行.
然后,在Eclipse中,为"C/C++应用程序"创建新的调试配置.在主选项卡的底部,选择GDB (GSF) Remote System Process Launcher启动器.在调试器选项卡上,选择gdbserver Debugger作为调试器.在连接下,TCP称为连接类型并给出localhost:1337地址.启动配置时,可以gdb通过在控制台中输入命令来控制远程控制.
CLI健全性检查
在您做任何事之前,请确保:
这个答案假设你可以在开发板上做:
sudo apt-get install gdbserver
gdbserver :1234 path/to/executable
Run Code Online (Sandbox Code Playgroud)
在主持人:
aarch64-linux-gnu-gdb \
-ex "target remote board-hostname:1234" \
-ex "file path/to/cross/compiled/executable" \
-ex 'tb main' \
-ex c
Run Code Online (Sandbox Code Playgroud)
然后正确调试一切.
Eclipse设置
在Ubuntu 16.04主机上测试,Eclipse Oxygen 4.7.0(从网站下载),gdbserver7.12,7.6 aarch64-linux-gnu-gdb.
我已经成功使用了以下所有方法:
手册
使用此方法,我们必须gdbserver在Eclipse上运行调试之前启动目标.
Pro:通过Eclipse分配配置SSH连接以允许Eclipse运行gdbserver,这是另一个可能的失败点.
Con:gdbserver每次调试开始时都必须重新启动.如果Eclipse理解gdbserver --multi,这可以克服,但我不认为这样做?
由于其简单性,我建议您首先使用此方法.
打开调试配置,然后创建一个新的"C/C++远程应用程序".
在"主要"选项卡下:
像往常一样选择"名称","项目"和"C/C++应用程序"进行本地调试
在底部启动器中,单击"选择其他",选中"使用配置特定设置"并选择"GDB(DSF)手动远程调试启动器"
为什么我们这样做:自动启动器首先通过SSH连接到电路板并gdbserver为您启动.
在"Debugger"选项卡下:
最后,gdbserver像在CLI中一样手动启动目标:
gdbserver :1234 path/to/executable
Run Code Online (Sandbox Code Playgroud)
并正常从Eclipse启动调试器.
gdbserver每次终止程序时都必须重新启动.
自动使用密码验证
这是开发板的最佳方法,它具有固定的公知密码.
它通过SSH和密码连接目标,gdbserver每次都自动启动目标,超级方便!
Target gdbserverstdout进入Eclipse"Console"窗口,这进一步减少了窗口切换.
在Eclipse集中:
/root/path/to/project/path/to/executable使用公钥自动
与密码验证非常相似,只是您必须转到:"连接","新建",然后选择"基于公钥的验证"
优点:
缺点:
所以我更喜欢这种方法用于服务器.
如果您以下情况,SSH可以在没有密码的情
~/.ssh/authorized_keys在目标上设置以包含~/.ssh/id_rsa.pub来自主机的内容在使用此方法之前,请确保您的授权密钥在命令行中运行,即您现在应该能够:
ssh user@host
Run Code Online (Sandbox Code Playgroud)
没有输入任何密码.
| 归档时间: |
|
| 查看次数: |
25951 次 |
| 最近记录: |