我在Eclipse中构建了一个"hello world“程序,并为基于ARM Cortex-A8的板提供了交叉开发插件。我为交叉开发定义了arm-none-linux-gnueabi编译器,当我用USB将输出二进制文件传输到板上时,它工作正常。我用ssh连接到板上并执行命令。
通过ssh,我运行以下命令:
gdbserver :2345 my调试器可执行 创建进程NeonDenemeler_debug;pid = 1692 监听2345端口
“my调试可执行文件”是在Eclipse中的我的主机pc (Ubuntu)上交叉编译的带有调试设置的可执行文件。我创建了一个调试配置,就像在http://linuxtortures.blogspot.com.tr/2012/06/cross-compiling-and-cross-debugging-c.html中描述的那样
总之,我创建了一个新的C/C++远程调试配置,将调试器设置为"arm-none-linux-gnueabi-gdb“,而不是"gdb”,并将连接设置设置为我的远程目标的ip和端口。当我启动调试配置时,一切正常,因为机上的gdbserver正在等待来自端口2345的数据包。
但是,我的问题是,当我更改源代码并再次编译时,是否有一种方法可以通过gdb将二进制文件从主机加载到的目标上?我无法找到诸如“加载可执行文件”等选项。我进行了更改和构建,但老的可执行文件总是在目标上运行。我的一个同伴成功地使用QT执行了相同的远程调试过程,这意味着“arm-none gdb”具有远程可执行文件加载功能。
发布于 2015-08-21 16:09:42
问题是,您正在使用“手动远程调试劳彻”配置(根据您发布的链接)。通过手动,它意味着应用程序被复制到目标并由用户启动。
您所要做的就是坚持图10的Debug配置,这是默认的配置(“自动远程调试Laucher")。Debug会话会将文件复制到目标,并自动启动调试器,就像在本地一样。为此,您只需确保首先在“远程系统资源管理器”透视图上创建一个可工作的远程连接,并将其分配给您的Debug配置(Connection下拉菜单)。
希望能帮上忙!
https://stackoverflow.com/questions/30975865
复制相似问题