我是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有什么不同?
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
在主持人:
aarch64-linux-gnu-gdb -ex "target remote board-hostname:1234" -ex "file path/to/cross/compiled/executable" -ex 'tb main' -ex c
然后正确调试一切。
Eclipse设置
在Ubuntu 16.04主机上测试,Eclipse Oxygen 4.7.0(从网站下载), gdbserver
7.12, aarch64-linux-gnu-gdb
7.6。
我已成功使用以下所有方法:
手册
使用此方法,我们必须在Eclipse上运行debug之前在目标上启动gdbserver
。
Pro:通过Eclipse配置SSH连接以允许Eclipse运行gdbserver
,这是另一个可能的失败点。
Con:每次调试开始时都必须重新启动gdbserver
。 如果Eclipse理解gdbserver --multi
,这可以克服,但我认为不行吗?
由于其简单,我建议您首先使用此方法。
打开调试配置,然后创建一个新的“C / C ++远程应用程序”。
在“主要”选项卡下:
在“调试器”选项卡下:
最后,像在CLI中一样,在目标上手动启动gdbserver
:
gdbserver :1234 path/to/executable
并正常从Eclipse启动调试器。
每次终止程序时都必须重新启动gdbserver
。
自动使用密码validation
这是开发板的最佳方法,它具有固定的公开密码。
它用SSH和密码连接目标,每次都自动在目标上启动gdbserver
,非常方便!
目标gdbserver
stdout进入Eclipse“Console”窗口,这进一步减少了窗口切换。
在Eclipse集中:
使用公钥自动
与密码validation非常相似,但您必须转到:“连接”,“新建”,然后选择“基于公钥的validation”
优点:
缺点:
所以我更喜欢这种方法用于服务器。
如果您以下情况,SSH可以在没有密码的情
在使用此方法之前,请确保您的授权密钥在命令行中运行,即您现在应该能够:
ssh user@host
没有输入任何密码。
以上就是c/c++开发分享如何使用gdbserver设置Eclipse进行远程C调试?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/560797.html